<html><head></head><body>I think INTZ+FETCH4 is an unlikely siruation because intz is an nvidia extension and fetch4 an AMD one. I would be very surprised to find a game needing it. I guess some later gpus might expose both.<br><br><div class="gmail_quote">Am 2. Februar 2019 21:46:27 MEZ schrieb Axel Davy <davyaxel0@gmail.com>:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">To my knowledge, DF24 doesn't have stencil (unlike INTZ).<br>Using a buffer with stencil is suboptimal, I would advise using a format <br>without.<br><br>Axel<br><br>On 01/02/2019 01:56, Daniel Ansorregui wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> - This assumes FETCH4 is already supported by wine<br>    And checks for ARB_texture_gather support before exposing DF24<br><br> Signed-off-by: Daniel Ansorregui <mailszeros@gmail.com><hr>   dlls/wined3d/directx.c |  6 ++++++<br>   dlls/wined3d/utils.c   | 30 ++++++++++++++++++++++++++++++<br>   include/wine/wined3d.h |  2 ++<br>   3 files changed, 38 insertions(+)<br><br> diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c<br> index 75622be80c..be0c514a78 100644<br> --- a/dlls/wined3d/directx.c<br> +++ b/dlls/wined3d/directx.c<br> @@ -1723,6 +1723,12 @@ HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, UINT ad<br>           return WINED3DOK_NOMIPGEN;<br>       }<br>   <br> +    if ((check_format_id == WINED3DFMT_DF24) && !adapter->gl_info.supported[ARB_TEXTURE_GATHER])<br> +    {<br> +        TRACE("No Support for Fetch4 disabling DF24 support.\n");<br> +        return WINED3DERR_NOTAVAILABLE;<br> +    }<br> +<br>       return WINED3D_OK;<br>   }<br>   <br> diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c<br> index 82111c8bb2..24fce97594 100644<br> --- a/dlls/wined3d/utils.c<br> +++ b/dlls/wined3d/utils.c<br> @@ -65,6 +65,8 @@ format_index_remap[] =<br>       {WINED3DFMT_R16,          WINED3D_FORMAT_FOURCC_BASE + 20},<br>       {WINED3DFMT_AL16,         WINED3D_FORMAT_FOURCC_BASE + 21},<br>       {WINED3DFMT_NV12,         WINED3D_FORMAT_FOURCC_BASE + 22},<br> +    {WINED3DFMT_DF16,         WINED3D_FORMAT_FOURCC_BASE + 23},<br> +    {WINED3DFMT_DF24,         WINED3D_FORMAT_FOURCC_BASE + 24},<br>   };<br>   <br>   #define WINED3D_FORMAT_COUNT (WINED3D_FORMAT_FOURCC_BASE + ARRAY_SIZE(format_index_remap))<br> @@ -141,6 +143,8 @@ static const struct wined3d_format_channels formats[] =<br>       {WINED3DFMT_NVHU,                       0,  0,  0,  0,   0,  0,  0,  0,    2,   0,     0},<br>       {WINED3DFMT_NVHS,                       0,  0,  0,  0,   0,  0,  0,  0,    2,   0,     0},<br>       {WINED3DFMT_NULL,                       8,  8,  8,  8,   0,  8, 16, 24,    4,   0,     0},<br> +    {WINED3DFMT_DF16,                       0,  0,  0,  0,   0,  0,  0,  0,    2,  16,     0},<br> +    {WINED3DFMT_DF24,                       0,  0,  0,  0,   0,  0,  0,  0,    4,  24,     0},<br>       /* Unsure about them, could not find a Windows driver that supports them */<br>       {WINED3DFMT_R16,                       16,  0,  0,  0,   0,  0,  0,  0,    2,   0,     0},<br>       {WINED3DFMT_AL16,                       0,  0,  0, 16,   0,  0,  0, 16,    4,   0,     0},<br> @@ -346,6 +350,8 @@ static const struct wined3d_format_base_flags format_base_flags[] =<br>       {WINED3DFMT_R16,                  WINED3DFMT_FLAG_ALLOW_FETCH4},<br>       {WINED3DFMT_R32_FLOAT,            WINED3DFMT_FLAG_ALLOW_FETCH4},<br>       {WINED3DFMT_A8_UNORM,             WINED3DFMT_FLAG_ALLOW_FETCH4},<br> +    {WINED3DFMT_DF16,                 WINED3DFMT_FLAG_ALLOW_FETCH4},<br> +    {WINED3DFMT_DF24,                 WINED3DFMT_FLAG_ALLOW_FETCH4},<br>   };<br>   <br>   static void rgb888_from_rgb565(WORD rgb565, BYTE *r, BYTE *g, BYTE *b)<br> @@ -1894,6 +1900,25 @@ static const struct wined3d_format_texture_info format_texture_info[] =<br>               WINED3DFMT_FLAG_TEXTURE | WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING<br>               | WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL,<br>               ARB_FRAMEBUFFER_OBJECT,     NULL},<br> +    {WINED3DFMT_DF16,              GL_DEPTH_COMPONENT,               GL_DEPTH_COMPONENT,                     0,<br> +            GL_DEPTH_COMPONENT,         GL_UNSIGNED_SHORT,                0,<br> +            WINED3DFMT_FLAG_DEPTH,<br> +            WINED3D_GL_EXT_NONE,        NULL},<br> +    {WINED3DFMT_DF16,              GL_DEPTH_COMPONENT16,             GL_DEPTH_COMPONENT16,                   0,<br> +            GL_DEPTH_COMPONENT,         GL_UNSIGNED_SHORT,                0,<br> +            WINED3DFMT_FLAG_TEXTURE | WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING<br> +            | WINED3DFMT_FLAG_DEPTH,<br> +            ARB_DEPTH_TEXTURE,          NULL},<br> +    {WINED3DFMT_DF24,                   GL_DEPTH24_STENCIL8_EXT,          GL_DEPTH24_STENCIL8_EXT,                0,<br> +            GL_DEPTH_STENCIL_EXT,       GL_UNSIGNED_INT_24_8_EXT,         0,<br> +            WINED3DFMT_FLAG_TEXTURE | WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING<br> +            | WINED3DFMT_FLAG_DEPTH,<br> +            EXT_PACKED_DEPTH_STENCIL,   NULL},<br> +    {WINED3DFMT_DF24,                   GL_DEPTH24_STENCIL8,              GL_DEPTH24_STENCIL8,                    0,<br> +            GL_DEPTH_STENCIL,           GL_UNSIGNED_INT_24_8,             0,<br> +            WINED3DFMT_FLAG_TEXTURE | WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING<br> +            | WINED3DFMT_FLAG_DEPTH,<br> +            ARB_FRAMEBUFFER_OBJECT,     NULL},<br>       {WINED3DFMT_NULL,                   0,                                0,                                      0,<br>               GL_RGBA,                    GL_UNSIGNED_INT_8_8_8_8_REV,      0,<br>               WINED3DFMT_FLAG_TEXTURE | WINED3DFMT_FLAG_RENDERTARGET | WINED3DFMT_FLAG_FBO_ATTACHABLE,<br> @@ -3533,6 +3558,9 @@ static void apply_format_fixups(struct wined3d_adapter *adapter, struct wined3d_<br>           {WINED3DFMT_INTZ,                  "XXXX", FALSE, WINED3D_GL_EXT_NONE},<br>           {WINED3DFMT_INTZ,                  "XYZW", FALSE, WINED3D_GL_LEGACY_CONTEXT},<br>   <br> +        {WINED3DFMT_DF16,                  "X001", FALSE, WINED3D_GL_EXT_NONE},<br> +        {WINED3DFMT_DF24,                  "X001", FALSE, WINED3D_GL_EXT_NONE},<br> +<br>           {WINED3DFMT_L8_UNORM,              "XXX1", FALSE, ARB_TEXTURE_RG},<br>       };<br>   <br> @@ -4387,6 +4415,8 @@ const char *debug_d3dformat(enum wined3d_format_id format_id)<br>           FMT_TO_STR(WINED3DFMT_R16);<br>           FMT_TO_STR(WINED3DFMT_AL16);<br>           FMT_TO_STR(WINED3DFMT_NV12);<br> +        FMT_TO_STR(WINED3DFMT_DF16);<br> +        FMT_TO_STR(WINED3DFMT_DF24);<br>   #undef FMT_TO_STR<br>           default:<br>           {<br> diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h<br> index e09e4e1fce..e6c3c1b802 100644<br> --- a/include/wine/wined3d.h<br> +++ b/include/wine/wined3d.h<br> @@ -271,6 +271,8 @@ enum wined3d_format_id<br>       WINED3DFMT_R16                          = WINEMAKEFOURCC(' ','R','1','6'),<br>       WINED3DFMT_AL16                         = WINEMAKEFOURCC('A','L','1','6'),<br>       WINED3DFMT_NV12                         = WINEMAKEFOURCC('N','V','1','2'),<br> +    WINED3DFMT_DF16                         = WINEMAKEFOURCC('D','F','1','6'),<br> +    WINED3DFMT_DF24                         = WINEMAKEFOURCC('D','F','2','4'),<br>   <br>       WINED3DFMT_FORCE_DWORD = 0xffffffff<br>   };<br></blockquote><br><br><br><br></pre></blockquote></div><br>-- <br>Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.</body></html>