• Zebediah Figura's avatar
    wined3d: Set d3d 1-9 textures in the state as SRVs. · 5b60f464
    Zebediah Figura authored
    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.
    5b60f464
texture.c 299 KB