Module: wine
Branch: master
Commit: 5b60f4649b15efb9ef10b63da3ef2c42f8665078
URL: https://gitlab.winehq.org/wine/wine/-/commit/5b60f4649b15efb9ef10b63da3ef2c…
Author: Zebediah Figura <zfigura(a)codeweavers.com>
Date: Fri Jul 14 17:44:02 2023 -0500
wined3d: Set d3d 1-9 textures in the state as SRVs.
The idea is to reuse the existing code to handle SRVs, which simplifies the GL
code and essentially allows the Vulkan code to work "for free" (which is to say,
by writing this patch, rather than by adding support for flat textures to the
Vulkan renderer.)
This is a large patch; it consists the following parts:
* Create identity SRVs for d3d 1-9 textures. Store those in
state->shader_resource_view instead of in state->texture.
* (Re)use wined3d_context_gl_bind_shader_resources() instead of state_sampler()
to bind them.
- Introduce code to that function to handle FFP textures.
- Bind the sRGB texture if necessary in wined3d_shader_resource_view_gl_bind.
* (Re)use context_gl_load_shader_resources() instead of
context_preload_textures() to load them.
- Introduce code to that function to handle FFP textures.
- Load the sRGB texture if necessary.
- Port the SRV/RTV feedback loop check from context_preload_textures().
* Invalidate STATE_GRAPHICS_SHADER_RESOURCE_BINDING in places that now need to
account for texture binding being guarded by that state instead of
STATE_SAMPLER.
Transitioning the remaining users of STATE_SAMPLER to
STATE_GRAPHICS_SHADER_RESOURCE_BINDING, and removing STATE_SAMPLER, is left
for future patches.
---
dlls/wined3d/arb_program_shader.c | 6 +--
dlls/wined3d/context.c | 71 ----------------------------
dlls/wined3d/context_gl.c | 85 ++++++++++++++++++++++++++++++++-
dlls/wined3d/cs.c | 99 ++++++++++++++++++++++-----------------
dlls/wined3d/device.c | 13 -----
dlls/wined3d/glsl_shader.c | 9 +---
dlls/wined3d/shader.c | 11 +++--
dlls/wined3d/state.c | 57 +---------------------
dlls/wined3d/stateblock.c | 37 +++++++--------
dlls/wined3d/texture.c | 8 +---
dlls/wined3d/view.c | 2 +-
dlls/wined3d/wined3d_private.h | 11 +++--
12 files changed, 177 insertions(+), 232 deletions(-)