From: Roland Scheidegger <srol...@vmware.com>

This is going to be required for setting the sample count when
rendering with no attachments.
Also cleans up view handling (should fix depthstencil_v2).

Reviewed-by: Charmaine Lee <charmai...@vmware.com>
Signed-off-by: Roland Scheidegger <srol...@vmware.com>
Signed-off-by: Zack Rusin <za...@vmware.com>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 2 ++
 drivers/gpu/drm/vmwgfx/vmwgfx_so.c      | 4 ++++
 drivers/gpu/drm/vmwgfx/vmwgfx_so.h      | 6 +++++-
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index fde26360e066..f3a11428ba90 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -3559,6 +3559,8 @@ static const struct vmw_cmd_entry 
vmw_cmd_entries[SVGA_3D_CMD_MAX] = {
                    &vmw_cmd_dx_define_streamoutput, true, false, true),
        VMW_CMD_DEF(SVGA_3D_CMD_DX_BIND_STREAMOUTPUT,
                    &vmw_cmd_dx_bind_streamoutput, true, false, true),
+       VMW_CMD_DEF(SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2,
+                   &vmw_cmd_dx_so_define, true, false, true),
 };
 
 bool vmw_cmd_describe(const void *buf, u32 *size, char const **cmd)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_so.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_so.c
index 9739ffde007c..4ea32b01efc0 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_so.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_so.c
@@ -567,4 +567,8 @@ static void vmw_so_build_asserts(void)
                     offsetof(SVGA3dCmdDXDefineRenderTargetView, sid));
        BUILD_BUG_ON(offsetof(struct vmw_view_define, sid) !=
                     offsetof(SVGA3dCmdDXDefineDepthStencilView, sid));
+       BUILD_BUG_ON(offsetof(struct vmw_view_define, sid) !=
+                    offsetof(SVGA3dCmdDXDefineUAView, sid));
+       BUILD_BUG_ON(offsetof(struct vmw_view_define, sid) !=
+                    offsetof(SVGA3dCmdDXDefineDepthStencilView_v2, sid));
 }
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_so.h 
b/drivers/gpu/drm/vmwgfx/vmwgfx_so.h
index f48b84bfeeac..01c701e7466e 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_so.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_so.h
@@ -93,7 +93,10 @@ static inline enum vmw_view_type vmw_view_cmd_to_type(u32 id)
            id == SVGA_3D_CMD_DX_DESTROY_UA_VIEW)
                return vmw_view_ua;
 
-       if (tmp > (u32)vmw_view_max)
+       if (id == SVGA_3D_CMD_DX_DEFINE_DEPTHSTENCIL_VIEW_V2)
+               return vmw_view_ds;
+
+       if (tmp > (u32)vmw_view_ds)
                return vmw_view_max;
 
        return (enum vmw_view_type) tmp;
@@ -123,6 +126,7 @@ static inline enum vmw_so_type vmw_so_cmd_to_type(u32 id)
        case SVGA_3D_CMD_DX_DESTROY_DEPTHSTENCIL_STATE:
                return vmw_so_ds;
        case SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE:
+       case SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2:
        case SVGA_3D_CMD_DX_DESTROY_RASTERIZER_STATE:
                return vmw_so_rs;
        case SVGA_3D_CMD_DX_DEFINE_SAMPLER_STATE:
-- 
2.32.0

Reply via email to