Module: Mesa
Branch: main
Commit: 81595cc82341b29ebd804495678852e48da9db0e
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=81595cc82341b29ebd804495678852e48da9db0e

Author: Jesse Natalie <[email protected]>
Date:   Mon Apr 17 12:06:39 2023 -0700

d3d12: Respect buffer offsets for sampler views

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22542>

---

 src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt | 2 --
 src/gallium/drivers/d3d12/d3d12_context.cpp     | 3 ++-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt 
b/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt
index ed9ccb83565..06e6f48d0db 100644
--- a/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt
+++ b/src/gallium/drivers/d3d12/ci/d3d12-quick_gl.txt
@@ -45,8 +45,6 @@ 
spec@arb_sample_shading@arb_sample_shading-builtin-gl-sample-mask-mrt-alpha-to-c
 spec@arb_seamless_cube_map@arb_seamless_cubemap,Fail
 spec@arb_shader_atomic_counters@semantics,Fail
 spec@arb_shader_atomic_counters@semantics@Tessellation control shader atomic 
built-in semantics,Fail
-spec@arb_texture_buffer_range@ranges-2,Fail
-spec@arb_texture_buffer_range@ranges-2 compat,Fail
 
spec@arb_texture_cube_map_array@arb_texture_cube_map_array-sampler-cube-array-shadow,Fail
 spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch,Fail
 spec@arb_texture_multisample@arb_texture_multisample-dsa-texelfetch@Texture 
type: GL_RGB9_E5,Fail
diff --git a/src/gallium/drivers/d3d12/d3d12_context.cpp 
b/src/gallium/drivers/d3d12/d3d12_context.cpp
index 145f14f7470..871c98ff56f 100644
--- a/src/gallium/drivers/d3d12/d3d12_context.cpp
+++ b/src/gallium/drivers/d3d12/d3d12_context.cpp
@@ -931,9 +931,10 @@ d3d12_init_sampler_view_descriptor(struct 
d3d12_sampler_view *sampler_view)
       desc.TextureCubeArray.ResourceMinLODClamp = 0.0f;
       break;
    case D3D12_SRV_DIMENSION_BUFFER:
+      offset += state->u.buf.offset;
       desc.Buffer.StructureByteStride = 0;
       desc.Buffer.FirstElement = offset / 
util_format_get_blocksize(state->format);
-      desc.Buffer.NumElements = MIN2(texture->width0 / 
util_format_get_blocksize(state->format),
+      desc.Buffer.NumElements = MIN2(state->u.buf.size / 
util_format_get_blocksize(state->format),
                                      1 << 
D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP);
       break;
    default:

Reply via email to