Module: wine Branch: master Commit: 1cab38b6aee2815885802cb4caa8708ae347b073 URL: https://gitlab.winehq.org/wine/wine/-/commit/1cab38b6aee2815885802cb4caa8708...
Author: Zebediah Figura zfigura@codeweavers.com Date: Fri Jan 6 13:37:40 2023 -0600
wined3d: Track WINED3D_GL_NORMALIZED_TEXRECT in struct wined3d_d3d_info as well.
---
dlls/wined3d/adapter_gl.c | 1 + dlls/wined3d/adapter_vk.c | 1 + dlls/wined3d/resource.c | 4 +--- dlls/wined3d/wined3d_private.h | 1 + 4 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index 8cd8a883975..e1cc1119e85 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -5215,6 +5215,7 @@ static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_ d3d_info->texture_npot = !!gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO]; d3d_info->texture_npot_conditional = gl_info->supported[WINED3D_GL_NORMALIZED_TEXRECT] || gl_info->supported[ARB_TEXTURE_RECTANGLE]; + d3d_info->normalized_texrect = gl_info->supported[WINED3D_GL_NORMALIZED_TEXRECT]; d3d_info->draw_base_vertex_offset = !!gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX]; d3d_info->vertex_bgra = !!gl_info->supported[ARB_VERTEX_ARRAY_BGRA]; d3d_info->texture_swizzle = !!gl_info->supported[ARB_TEXTURE_SWIZZLE]; diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index 3dcf2230643..bc1039e0358 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -2330,6 +2330,7 @@ static void wined3d_adapter_vk_init_d3d_info(struct wined3d_adapter_vk *adapter_ d3d_info->viewport_array_index_any_shader = false; /* VK_EXT_shader_viewport_index_layer */ d3d_info->texture_npot = true; d3d_info->texture_npot_conditional = true; + d3d_info->normalized_texrect = false; d3d_info->draw_base_vertex_offset = true; d3d_info->vertex_bgra = true; d3d_info->texture_swizzle = true; diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c index 6d4dbb75ef6..03a755391ee 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c @@ -60,7 +60,6 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device * const struct wined3d_d3d_info *d3d_info = &device->adapter->d3d_info; enum wined3d_gl_resource_type base_type = WINED3D_GL_RES_TYPE_COUNT; enum wined3d_gl_resource_type gl_type = WINED3D_GL_RES_TYPE_COUNT; - const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; BOOL tex_2d_ok = FALSE; unsigned int i;
@@ -143,8 +142,7 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device * continue; } if (((width & (width - 1)) || (height & (height - 1))) - && !d3d_info->texture_npot - && !gl_info->supported[WINED3D_GL_NORMALIZED_TEXRECT] + && !d3d_info->texture_npot && !d3d_info->normalized_texrect && gl_type == WINED3D_GL_RES_TYPE_TEX_2D) { TRACE("Skipping 2D texture type to try texture rectangle.\n"); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 6c558faa7d2..4805127d72c 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -248,6 +248,7 @@ struct wined3d_d3d_info uint32_t viewport_array_index_any_shader : 1; uint32_t texture_npot : 1; uint32_t texture_npot_conditional : 1; + uint32_t normalized_texrect : 1; uint32_t draw_base_vertex_offset : 1; uint32_t vertex_bgra : 1; uint32_t texture_swizzle : 1;