[PATCH] Remove unneeded code in CheckDeviceFormat. All these checks are done during the capability checks which are performed under the resource type checks. Previously this patch caused some d3d9 visual tests to fail. They failed due to other bugs in CheckDeviceFormat which are fixed now.

Roderick Colenbrander thunderbird2k at gmx.net
Fri Mar 21 16:41:59 CDT 2008


---
 dlls/wined3d/directx.c |  152 +-----------------------------------------------
 1 files changed, 1 insertions(+), 151 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 1c7d9e3..6665a42 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2170,8 +2170,7 @@ static BOOL CheckTextureCapability(UINT Adapter, WINED3DFORMAT CheckFormat)
          * MAKEFOURCC('I','N','S','T') is used. Should a (broken) app check for this provide a proper return value.
          * We can do instancing with all shader versions, but we need vertex shaders.
          *
-         * Additionally applications have to set the D3DRS_POINTSIZE render state to
-MAKEFOURCC('I','N','S','T') once
+         * Additionally applications have to set the D3DRS_POINTSIZE render state to MAKEFOURCC('I','N','S','T') once
          * to enable instancing. WineD3D doesn't need that and just ignores it.
          *
          * With Shader Model 3.0 capable cards Instancing 'just works' in Windows.
@@ -2556,155 +2555,6 @@ static HRESULT WINAPI IWineD3DImpl_CheckDeviceFormat(IWineD3D *iface, UINT Adapt
         return WINED3DERR_NOTAVAILABLE;
     }
 
-    switch (CheckFormat) {
-
-        /*****
-         *  supported: RGB(A) formats
-         */
-        case WINED3DFMT_R8G8B8: /* Enable for dx7, blacklisted for 8 and 9 above */
-        case WINED3DFMT_A8R8G8B8:
-        case WINED3DFMT_X8R8G8B8:
-        case WINED3DFMT_R5G6B5:
-        case WINED3DFMT_X1R5G5B5:
-        case WINED3DFMT_A1R5G5B5:
-        case WINED3DFMT_A4R4G4B4:
-        case WINED3DFMT_R3G3B2:
-        case WINED3DFMT_A8:
-        case WINED3DFMT_X4R4G4B4:
-        case WINED3DFMT_A8B8G8R8:
-        case WINED3DFMT_X8B8G8R8:
-        case WINED3DFMT_A2R10G10B10:
-        case WINED3DFMT_A2B10G10R10:
-        case WINED3DFMT_G16R16:
-            TRACE_(d3d_caps)("[OK]\n");
-            return WINED3D_OK;
-
-        /*****
-         *  supported: Palettized
-         */
-        case WINED3DFMT_P8:
-            TRACE_(d3d_caps)("[OK]\n");
-            return WINED3D_OK;
-
-        /*****
-         *  Supported: (Alpha)-Luminance
-         */
-        case WINED3DFMT_L8:
-        case WINED3DFMT_A8L8:
-        case WINED3DFMT_A4L4:
-            TRACE_(d3d_caps)("[OK]\n");
-            return WINED3D_OK;
-
-        /*****
-         *  Not supported everywhere(depends on GL_ATI_envmap_bumpmap or
-         *  GL_NV_texture_shader), but advertized to make apps happy.
-         *  Enable some because games often fail when they are not available
-         *  and are still playable even without bump mapping
-         */
-        case WINED3DFMT_V8U8:
-        case WINED3DFMT_V16U16:
-        case WINED3DFMT_L6V5U5:
-        case WINED3DFMT_X8L8V8U8:
-        case WINED3DFMT_Q8W8V8U8:
-            WARN_(d3d_caps)("[Not supported, but pretended to do]\n");
-            return WINED3D_OK;
-
-        /* Those are not advertized by the nvidia windows driver, and not
-         * supported natively by GL_NV_texture_shader or GL_ATI_envmap_bumpmap.
-         * WINED3DFMT_A2W10V10U10 could be loaded into shaders using the unsigned
-         * ARGB format if needed
-         */
-        case WINED3DFMT_W11V11U10:
-        case WINED3DFMT_A2W10V10U10:
-            WARN_(d3d_caps)("[FAILED]\n");
-            return WINED3DERR_NOTAVAILABLE;
-
-        case WINED3DFMT_DXT1:
-        case WINED3DFMT_DXT2:
-        case WINED3DFMT_DXT3:
-        case WINED3DFMT_DXT4:
-        case WINED3DFMT_DXT5:
-            if (GL_SUPPORT(EXT_TEXTURE_COMPRESSION_S3TC)) {
-                TRACE_(d3d_caps)("[OK]\n");
-                return WINED3D_OK;
-            } else {
-                TRACE_(d3d_caps)("[FAILED]\n");
-                return WINED3DERR_NOTAVAILABLE;
-            }
-
-
-        /*****
-         *  Odd formats - not supported
-         */
-        case WINED3DFMT_VERTEXDATA:
-        case WINED3DFMT_INDEX16:
-        case WINED3DFMT_INDEX32:
-        case WINED3DFMT_Q16W16V16U16:
-            TRACE_(d3d_caps)("[FAILED]\n"); /* Enable when implemented */
-            return WINED3DERR_NOTAVAILABLE;
-
-        /*****
-         *  WINED3DFMT_CxV8U8: Not supported right now
-         */
-        case WINED3DFMT_CxV8U8:
-            TRACE_(d3d_caps)("[FAILED]\n"); /* Enable when implemented */
-            return WINED3DERR_NOTAVAILABLE;
-
-            /* Not supported */
-        case WINED3DFMT_A16B16G16R16:
-        case WINED3DFMT_A8R3G3B2:
-            TRACE_(d3d_caps)("[FAILED]\n"); /* Enable when implemented */
-            return WINED3DERR_NOTAVAILABLE;
-
-            /* Floating point formats */
-        case WINED3DFMT_R16F:
-        case WINED3DFMT_A16B16G16R16F:
-            if(GL_SUPPORT(ARB_HALF_FLOAT_PIXEL)) {
-                TRACE_(d3d_caps)("[OK]\n");
-                return WINED3D_OK;
-            } else {
-                TRACE_(d3d_caps)("[FAILED]\n");
-                return WINED3DERR_NOTAVAILABLE;
-            }
-        case WINED3DFMT_R32F:
-        case WINED3DFMT_A32B32G32R32F:
-            if (GL_SUPPORT(ARB_TEXTURE_FLOAT)) {
-                TRACE_(d3d_caps)("[OK]\n");
-                return WINED3D_OK;
-            } else {
-                TRACE_(d3d_caps)("[FAILED]\n");
-                return WINED3DERR_NOTAVAILABLE;
-            }
-
-        case WINED3DFMT_G16R16F:
-        case WINED3DFMT_G32R32F:
-            TRACE_(d3d_caps)("[FAILED]\n");
-            return WINED3DERR_NOTAVAILABLE;
-
-        /* ATI instancing hack: Although ATI cards do not support Shader Model 3.0, they support
-         * instancing. To query if the card supports instancing CheckDeviceFormat with the special format
-         * MAKEFOURCC('I','N','S','T') is used. Should a (broken) app check for this provide a proper return value.
-         * We can do instancing with all shader versions, but we need vertex shaders.
-         *
-         * Additionally applications have to set the D3DRS_POINTSIZE render state to MAKEFOURCC('I','N','S','T') once
-         * to enable instancing. WineD3D doesn't need that and just ignores it.
-         *
-         * With Shader Model 3.0 capable cards Instancing 'just works' in Windows.
-         */
-        case WINEMAKEFOURCC('I','N','S','T'):
-            TRACE("ATI Instancing check hack\n");
-            if(GL_SUPPORT(ARB_VERTEX_PROGRAM) || GL_SUPPORT(ARB_VERTEX_SHADER)) {
-                TRACE_(d3d_caps)("[OK]\n");
-                return WINED3D_OK;
-            } else {
-                TRACE_(d3d_caps)("[FAILED]\n");
-                return WINED3DERR_NOTAVAILABLE;
-            }
-
-        default:
-            break;
-    }
-
     /* When the UsageCaps exactly matches Usage return WINED3D_OK except for the situation in which
      * WINED3DUSAGE_AUTOGENMIPMAP isn't around, then WINED3DOK_NOAUTOGEN is returned if all the other
      * usage flags match. */
-- 
1.5.3.8


--========GMX191011206133908418786--



More information about the wine-patches mailing list