mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-14 19:47:27 +00:00
wined3d: Map D3DFMT_D24S8 to WINED3DFMT_D24_UNORM_S8_UINT.
The internal order of the depth and stencil bits is unspecified since the format isn't lockable.
This commit is contained in:
parent
fbae08672b
commit
bf10dbe8a6
|
@ -74,7 +74,7 @@ D3DFORMAT d3dformat_from_wined3dformat(WINED3DFORMAT format)
|
||||||
case WINED3DFMT_D16_LOCKABLE: return D3DFMT_D16_LOCKABLE;
|
case WINED3DFMT_D16_LOCKABLE: return D3DFMT_D16_LOCKABLE;
|
||||||
case WINED3DFMT_D32_UNORM: return D3DFMT_D32;
|
case WINED3DFMT_D32_UNORM: return D3DFMT_D32;
|
||||||
case WINED3DFMT_S1_UINT_D15_UNORM: return D3DFMT_D15S1;
|
case WINED3DFMT_S1_UINT_D15_UNORM: return D3DFMT_D15S1;
|
||||||
case WINED3DFMT_S8_UINT_D24_UNORM: return D3DFMT_D24S8;
|
case WINED3DFMT_D24_UNORM_S8_UINT: return D3DFMT_D24S8;
|
||||||
case WINED3DFMT_X8D24_UNORM: return D3DFMT_D24X8;
|
case WINED3DFMT_X8D24_UNORM: return D3DFMT_D24X8;
|
||||||
case WINED3DFMT_S4X4_UINT_D24_UNORM: return D3DFMT_D24X4S4;
|
case WINED3DFMT_S4X4_UINT_D24_UNORM: return D3DFMT_D24X4S4;
|
||||||
case WINED3DFMT_D16_UNORM: return D3DFMT_D16;
|
case WINED3DFMT_D16_UNORM: return D3DFMT_D16;
|
||||||
|
@ -125,7 +125,7 @@ WINED3DFORMAT wined3dformat_from_d3dformat(D3DFORMAT format)
|
||||||
case D3DFMT_D16_LOCKABLE: return WINED3DFMT_D16_LOCKABLE;
|
case D3DFMT_D16_LOCKABLE: return WINED3DFMT_D16_LOCKABLE;
|
||||||
case D3DFMT_D32: return WINED3DFMT_D32_UNORM;
|
case D3DFMT_D32: return WINED3DFMT_D32_UNORM;
|
||||||
case D3DFMT_D15S1: return WINED3DFMT_S1_UINT_D15_UNORM;
|
case D3DFMT_D15S1: return WINED3DFMT_S1_UINT_D15_UNORM;
|
||||||
case D3DFMT_D24S8: return WINED3DFMT_S8_UINT_D24_UNORM;
|
case D3DFMT_D24S8: return WINED3DFMT_D24_UNORM_S8_UINT;
|
||||||
case D3DFMT_D24X8: return WINED3DFMT_X8D24_UNORM;
|
case D3DFMT_D24X8: return WINED3DFMT_X8D24_UNORM;
|
||||||
case D3DFMT_D24X4S4: return WINED3DFMT_S4X4_UINT_D24_UNORM;
|
case D3DFMT_D24X4S4: return WINED3DFMT_S4X4_UINT_D24_UNORM;
|
||||||
case D3DFMT_D16: return WINED3DFMT_D16_UNORM;
|
case D3DFMT_D16: return WINED3DFMT_D16_UNORM;
|
||||||
|
|
|
@ -66,7 +66,7 @@ D3DFORMAT d3dformat_from_wined3dformat(WINED3DFORMAT format)
|
||||||
case WINED3DFMT_D16_LOCKABLE: return D3DFMT_D16_LOCKABLE;
|
case WINED3DFMT_D16_LOCKABLE: return D3DFMT_D16_LOCKABLE;
|
||||||
case WINED3DFMT_D32_UNORM: return D3DFMT_D32;
|
case WINED3DFMT_D32_UNORM: return D3DFMT_D32;
|
||||||
case WINED3DFMT_S1_UINT_D15_UNORM: return D3DFMT_D15S1;
|
case WINED3DFMT_S1_UINT_D15_UNORM: return D3DFMT_D15S1;
|
||||||
case WINED3DFMT_S8_UINT_D24_UNORM: return D3DFMT_D24S8;
|
case WINED3DFMT_D24_UNORM_S8_UINT: return D3DFMT_D24S8;
|
||||||
case WINED3DFMT_X8D24_UNORM: return D3DFMT_D24X8;
|
case WINED3DFMT_X8D24_UNORM: return D3DFMT_D24X8;
|
||||||
case WINED3DFMT_S4X4_UINT_D24_UNORM: return D3DFMT_D24X4S4;
|
case WINED3DFMT_S4X4_UINT_D24_UNORM: return D3DFMT_D24X4S4;
|
||||||
case WINED3DFMT_D16_UNORM: return D3DFMT_D16;
|
case WINED3DFMT_D16_UNORM: return D3DFMT_D16;
|
||||||
|
@ -131,7 +131,7 @@ WINED3DFORMAT wined3dformat_from_d3dformat(D3DFORMAT format)
|
||||||
case D3DFMT_D16_LOCKABLE: return WINED3DFMT_D16_LOCKABLE;
|
case D3DFMT_D16_LOCKABLE: return WINED3DFMT_D16_LOCKABLE;
|
||||||
case D3DFMT_D32: return WINED3DFMT_D32_UNORM;
|
case D3DFMT_D32: return WINED3DFMT_D32_UNORM;
|
||||||
case D3DFMT_D15S1: return WINED3DFMT_S1_UINT_D15_UNORM;
|
case D3DFMT_D15S1: return WINED3DFMT_S1_UINT_D15_UNORM;
|
||||||
case D3DFMT_D24S8: return WINED3DFMT_S8_UINT_D24_UNORM;
|
case D3DFMT_D24S8: return WINED3DFMT_D24_UNORM_S8_UINT;
|
||||||
case D3DFMT_D24X8: return WINED3DFMT_X8D24_UNORM;
|
case D3DFMT_D24X8: return WINED3DFMT_X8D24_UNORM;
|
||||||
case D3DFMT_D24X4S4: return WINED3DFMT_S4X4_UINT_D24_UNORM;
|
case D3DFMT_D24X4S4: return WINED3DFMT_S4X4_UINT_D24_UNORM;
|
||||||
case D3DFMT_D16: return WINED3DFMT_D16_UNORM;
|
case D3DFMT_D16: return WINED3DFMT_D16_UNORM;
|
||||||
|
|
|
@ -1116,7 +1116,7 @@ IDirect3DImpl_7_EnumZBufferFormats(IDirect3D7 *iface,
|
||||||
WINED3DFMT_D16_UNORM,
|
WINED3DFMT_D16_UNORM,
|
||||||
WINED3DFMT_X8D24_UNORM,
|
WINED3DFMT_X8D24_UNORM,
|
||||||
WINED3DFMT_S4X4_UINT_D24_UNORM,
|
WINED3DFMT_S4X4_UINT_D24_UNORM,
|
||||||
WINED3DFMT_S8_UINT_D24_UNORM,
|
WINED3DFMT_D24_UNORM_S8_UINT,
|
||||||
WINED3DFMT_D32_UNORM,
|
WINED3DFMT_D32_UNORM,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -217,7 +217,7 @@ PixelFormat_WineD3DtoDD(DDPIXELFORMAT *DDPixelFormat,
|
||||||
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
DDPixelFormat->u5.dwRGBAlphaBitMask = 0x0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WINED3DFMT_S8_UINT_D24_UNORM:
|
case WINED3DFMT_D24_UNORM_S8_UINT:
|
||||||
DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
|
DDPixelFormat->dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
|
||||||
DDPixelFormat->dwFourCC = 0;
|
DDPixelFormat->dwFourCC = 0;
|
||||||
/* Should I set dwZBufferBitDepth to 32 here? */
|
/* Should I set dwZBufferBitDepth to 32 here? */
|
||||||
|
@ -529,11 +529,11 @@ PixelFormat_DD2WineD3D(const DDPIXELFORMAT *DDPixelFormat)
|
||||||
|
|
||||||
case 24:
|
case 24:
|
||||||
FIXME("Don't know how to handle a 24 bit depth buffer with stencil bits\n");
|
FIXME("Don't know how to handle a 24 bit depth buffer with stencil bits\n");
|
||||||
return WINED3DFMT_S8_UINT_D24_UNORM;
|
return WINED3DFMT_D24_UNORM_S8_UINT;
|
||||||
|
|
||||||
case 32:
|
case 32:
|
||||||
if(DDPixelFormat->u2.dwStencilBitDepth == 8)
|
if(DDPixelFormat->u2.dwStencilBitDepth == 8)
|
||||||
return WINED3DFMT_S8_UINT_D24_UNORM;
|
return WINED3DFMT_D24_UNORM_S8_UINT;
|
||||||
else
|
else
|
||||||
return WINED3DFMT_S4X4_UINT_D24_UNORM;
|
return WINED3DFMT_S4X4_UINT_D24_UNORM;
|
||||||
|
|
||||||
|
|
|
@ -1016,10 +1016,10 @@ static int WineD3D_ChoosePixelFormat(IWineD3DDeviceImpl *This, HDC hdc,
|
||||||
* Likely a lot of other new bugs will be exposed. For that reason request a depth stencil surface all the
|
* Likely a lot of other new bugs will be exposed. For that reason request a depth stencil surface all the
|
||||||
* time. It can cause a slight performance hit but fixes a lot of regressions. A fixme reminds of that this
|
* time. It can cause a slight performance hit but fixes a lot of regressions. A fixme reminds of that this
|
||||||
* issue needs to be fixed. */
|
* issue needs to be fixed. */
|
||||||
if (ds_format_desc->format != WINED3DFMT_S8_UINT_D24_UNORM)
|
if (ds_format_desc->format != WINED3DFMT_D24_UNORM_S8_UINT)
|
||||||
{
|
{
|
||||||
FIXME("Add OpenGL context recreation support to SetDepthStencilSurface\n");
|
FIXME("Add OpenGL context recreation support to SetDepthStencilSurface\n");
|
||||||
ds_format_desc = getFormatDescEntry(WINED3DFMT_S8_UINT_D24_UNORM, &This->adapter->gl_info);
|
ds_format_desc = getFormatDescEntry(WINED3DFMT_D24_UNORM_S8_UINT, &This->adapter->gl_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
getDepthStencilBits(ds_format_desc, &depthBits, &stencilBits);
|
getDepthStencilBits(ds_format_desc, &depthBits, &stencilBits);
|
||||||
|
|
|
@ -2978,7 +2978,7 @@ static BOOL CheckTextureCapability(struct wined3d_adapter *adapter,
|
||||||
case WINED3DFMT_S1_UINT_D15_UNORM:
|
case WINED3DFMT_S1_UINT_D15_UNORM:
|
||||||
case WINED3DFMT_X8D24_UNORM:
|
case WINED3DFMT_X8D24_UNORM:
|
||||||
case WINED3DFMT_S4X4_UINT_D24_UNORM:
|
case WINED3DFMT_S4X4_UINT_D24_UNORM:
|
||||||
case WINED3DFMT_S8_UINT_D24_UNORM:
|
case WINED3DFMT_D24_UNORM_S8_UINT:
|
||||||
case WINED3DFMT_S8_UINT_D24_FLOAT:
|
case WINED3DFMT_S8_UINT_D24_FLOAT:
|
||||||
case WINED3DFMT_D32_UNORM:
|
case WINED3DFMT_D32_UNORM:
|
||||||
case WINED3DFMT_D32_FLOAT:
|
case WINED3DFMT_D32_FLOAT:
|
||||||
|
|
|
@ -3980,7 +3980,7 @@ static HRESULT IWineD3DSurfaceImpl_BltZ(IWineD3DSurfaceImpl *This, const RECT *D
|
||||||
case WINED3DFMT_S1_UINT_D15_UNORM:
|
case WINED3DFMT_S1_UINT_D15_UNORM:
|
||||||
depth = (float) DDBltFx->u5.dwFillDepth / (float) 0x0000fffe;
|
depth = (float) DDBltFx->u5.dwFillDepth / (float) 0x0000fffe;
|
||||||
break;
|
break;
|
||||||
case WINED3DFMT_S8_UINT_D24_UNORM:
|
case WINED3DFMT_D24_UNORM_S8_UINT:
|
||||||
case WINED3DFMT_X8D24_UNORM:
|
case WINED3DFMT_X8D24_UNORM:
|
||||||
depth = (float) DDBltFx->u5.dwFillDepth / (float) 0x00ffffff;
|
depth = (float) DDBltFx->u5.dwFillDepth / (float) 0x00ffffff;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -118,7 +118,7 @@ static const struct StaticPixelFormatDesc formats[] =
|
||||||
{WINED3DFMT_D16_LOCKABLE, 0x0, 0x0, 0x0, 0x0, 2, 16, 0, FALSE},
|
{WINED3DFMT_D16_LOCKABLE, 0x0, 0x0, 0x0, 0x0, 2, 16, 0, FALSE},
|
||||||
{WINED3DFMT_D32_UNORM, 0x0, 0x0, 0x0, 0x0, 4, 32, 0, FALSE},
|
{WINED3DFMT_D32_UNORM, 0x0, 0x0, 0x0, 0x0, 4, 32, 0, FALSE},
|
||||||
{WINED3DFMT_S1_UINT_D15_UNORM, 0x0, 0x0, 0x0, 0x0, 2, 15, 1, FALSE},
|
{WINED3DFMT_S1_UINT_D15_UNORM, 0x0, 0x0, 0x0, 0x0, 2, 15, 1, FALSE},
|
||||||
{WINED3DFMT_S8_UINT_D24_UNORM, 0x0, 0x0, 0x0, 0x0, 4, 24, 8, FALSE},
|
{WINED3DFMT_D24_UNORM_S8_UINT, 0x0, 0x0, 0x0, 0x0, 4, 24, 8, FALSE},
|
||||||
{WINED3DFMT_X8D24_UNORM, 0x0, 0x0, 0x0, 0x0, 4, 24, 0, FALSE},
|
{WINED3DFMT_X8D24_UNORM, 0x0, 0x0, 0x0, 0x0, 4, 24, 0, FALSE},
|
||||||
{WINED3DFMT_S4X4_UINT_D24_UNORM, 0x0, 0x0, 0x0, 0x0, 4, 24, 4, FALSE},
|
{WINED3DFMT_S4X4_UINT_D24_UNORM, 0x0, 0x0, 0x0, 0x0, 4, 24, 4, FALSE},
|
||||||
{WINED3DFMT_D16_UNORM, 0x0, 0x0, 0x0, 0x0, 2, 16, 0, FALSE},
|
{WINED3DFMT_D16_UNORM, 0x0, 0x0, 0x0, 0x0, 2, 16, 0, FALSE},
|
||||||
|
@ -447,15 +447,15 @@ static const GlPixelFormatDescTemplate gl_formats_template[] = {
|
||||||
GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8,
|
GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8,
|
||||||
WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL,
|
WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL,
|
||||||
ARB_FRAMEBUFFER_OBJECT},
|
ARB_FRAMEBUFFER_OBJECT},
|
||||||
{WINED3DFMT_S8_UINT_D24_UNORM, GL_DEPTH_COMPONENT24_ARB, GL_DEPTH_COMPONENT24_ARB, 0,
|
{WINED3DFMT_D24_UNORM_S8_UINT, GL_DEPTH_COMPONENT24_ARB, GL_DEPTH_COMPONENT24_ARB, 0,
|
||||||
GL_DEPTH_COMPONENT, GL_UNSIGNED_INT,
|
GL_DEPTH_COMPONENT, GL_UNSIGNED_INT,
|
||||||
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_DEPTH,
|
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_DEPTH,
|
||||||
ARB_DEPTH_TEXTURE},
|
ARB_DEPTH_TEXTURE},
|
||||||
{WINED3DFMT_S8_UINT_D24_UNORM, GL_DEPTH24_STENCIL8_EXT, GL_DEPTH24_STENCIL8_EXT, 0,
|
{WINED3DFMT_D24_UNORM_S8_UINT, GL_DEPTH24_STENCIL8_EXT, GL_DEPTH24_STENCIL8_EXT, 0,
|
||||||
GL_DEPTH_STENCIL_EXT, GL_UNSIGNED_INT_24_8_EXT,
|
GL_DEPTH_STENCIL_EXT, GL_UNSIGNED_INT_24_8_EXT,
|
||||||
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL,
|
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL,
|
||||||
EXT_PACKED_DEPTH_STENCIL},
|
EXT_PACKED_DEPTH_STENCIL},
|
||||||
{WINED3DFMT_S8_UINT_D24_UNORM, GL_DEPTH24_STENCIL8, GL_DEPTH24_STENCIL8, 0,
|
{WINED3DFMT_D24_UNORM_S8_UINT, GL_DEPTH24_STENCIL8, GL_DEPTH24_STENCIL8, 0,
|
||||||
GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8,
|
GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8,
|
||||||
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL,
|
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL,
|
||||||
ARB_FRAMEBUFFER_OBJECT},
|
ARB_FRAMEBUFFER_OBJECT},
|
||||||
|
@ -1189,7 +1189,6 @@ const char* debug_d3dformat(WINED3DFORMAT fmt) {
|
||||||
FMT_TO_STR(WINED3DFMT_D16_LOCKABLE);
|
FMT_TO_STR(WINED3DFMT_D16_LOCKABLE);
|
||||||
FMT_TO_STR(WINED3DFMT_D32_UNORM);
|
FMT_TO_STR(WINED3DFMT_D32_UNORM);
|
||||||
FMT_TO_STR(WINED3DFMT_S1_UINT_D15_UNORM);
|
FMT_TO_STR(WINED3DFMT_S1_UINT_D15_UNORM);
|
||||||
FMT_TO_STR(WINED3DFMT_S8_UINT_D24_UNORM);
|
|
||||||
FMT_TO_STR(WINED3DFMT_X8D24_UNORM);
|
FMT_TO_STR(WINED3DFMT_X8D24_UNORM);
|
||||||
FMT_TO_STR(WINED3DFMT_S4X4_UINT_D24_UNORM);
|
FMT_TO_STR(WINED3DFMT_S4X4_UINT_D24_UNORM);
|
||||||
FMT_TO_STR(WINED3DFMT_L16_UNORM);
|
FMT_TO_STR(WINED3DFMT_L16_UNORM);
|
||||||
|
@ -2083,7 +2082,7 @@ BOOL getDepthStencilBits(const struct GlPixelFormatDesc *format_desc, short *dep
|
||||||
case WINED3DFMT_S1_UINT_D15_UNORM:
|
case WINED3DFMT_S1_UINT_D15_UNORM:
|
||||||
case WINED3DFMT_X8D24_UNORM:
|
case WINED3DFMT_X8D24_UNORM:
|
||||||
case WINED3DFMT_S4X4_UINT_D24_UNORM:
|
case WINED3DFMT_S4X4_UINT_D24_UNORM:
|
||||||
case WINED3DFMT_S8_UINT_D24_UNORM:
|
case WINED3DFMT_D24_UNORM_S8_UINT:
|
||||||
case WINED3DFMT_S8_UINT_D24_FLOAT:
|
case WINED3DFMT_S8_UINT_D24_FLOAT:
|
||||||
case WINED3DFMT_D32_UNORM:
|
case WINED3DFMT_D32_UNORM:
|
||||||
case WINED3DFMT_D32_FLOAT:
|
case WINED3DFMT_D32_FLOAT:
|
||||||
|
|
|
@ -152,7 +152,6 @@ typedef enum _WINED3DFORMAT
|
||||||
WINED3DFMT_D16_LOCKABLE,
|
WINED3DFMT_D16_LOCKABLE,
|
||||||
WINED3DFMT_D32_UNORM,
|
WINED3DFMT_D32_UNORM,
|
||||||
WINED3DFMT_S1_UINT_D15_UNORM,
|
WINED3DFMT_S1_UINT_D15_UNORM,
|
||||||
WINED3DFMT_S8_UINT_D24_UNORM,
|
|
||||||
WINED3DFMT_X8D24_UNORM,
|
WINED3DFMT_X8D24_UNORM,
|
||||||
WINED3DFMT_S4X4_UINT_D24_UNORM,
|
WINED3DFMT_S4X4_UINT_D24_UNORM,
|
||||||
WINED3DFMT_L16_UNORM,
|
WINED3DFMT_L16_UNORM,
|
||||||
|
|
Loading…
Reference in a new issue