Mesa (main): d3d12: Bind 16 scissor rects when scissor disabled

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Feb 4 21:01:14 UTC 2022


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

Author: Jesse Natalie <jenatali at microsoft.com>
Date:   Fri Feb  4 06:16:56 2022 -0800

d3d12: Bind 16 scissor rects when scissor disabled

Reviewed-by: Sil Vilerino <sivileri at microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14881>

---

 src/gallium/drivers/d3d12/d3d12_draw.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/d3d12/d3d12_draw.cpp b/src/gallium/drivers/d3d12/d3d12_draw.cpp
index 58b6365e229..d47422fc288 100644
--- a/src/gallium/drivers/d3d12/d3d12_draw.cpp
+++ b/src/gallium/drivers/d3d12/d3d12_draw.cpp
@@ -49,6 +49,14 @@ static const D3D12_RECT MAX_SCISSOR = { D3D12_VIEWPORT_BOUNDS_MIN,
                                         D3D12_VIEWPORT_BOUNDS_MAX,
                                         D3D12_VIEWPORT_BOUNDS_MAX };
 
+static const D3D12_RECT MAX_SCISSOR_ARRAY[] = {
+   MAX_SCISSOR, MAX_SCISSOR, MAX_SCISSOR, MAX_SCISSOR,
+   MAX_SCISSOR, MAX_SCISSOR, MAX_SCISSOR, MAX_SCISSOR,
+   MAX_SCISSOR, MAX_SCISSOR, MAX_SCISSOR, MAX_SCISSOR,
+   MAX_SCISSOR, MAX_SCISSOR, MAX_SCISSOR, MAX_SCISSOR
+};
+static_assert(ARRAY_SIZE(MAX_SCISSOR_ARRAY) == PIPE_MAX_VIEWPORTS, "Wrong scissor count");
+
 static D3D12_GPU_DESCRIPTOR_HANDLE
 fill_cbv_descriptors(struct d3d12_context *ctx,
                      struct d3d12_shader *shader,
@@ -1075,7 +1083,7 @@ d3d12_draw_vbo(struct pipe_context *pctx,
       if (ctx->gfx_pipeline_state.rast->base.scissor && ctx->num_viewports > 0)
          ctx->cmdlist->RSSetScissorRects(ctx->num_viewports, ctx->scissors);
       else
-         ctx->cmdlist->RSSetScissorRects(1, &MAX_SCISSOR);
+         ctx->cmdlist->RSSetScissorRects(PIPE_MAX_VIEWPORTS, MAX_SCISSOR_ARRAY);
    }
 
    if (ctx->cmdlist_dirty & D3D12_DIRTY_BLEND_COLOR) {



More information about the mesa-commit mailing list