Commit 853369df authored by Roland Scheidegger's avatar Roland Scheidegger Committed by Zack Rusin
Browse files

drm/vmwgfx: support SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2 command



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: default avatarCharmaine Lee <charmainel@vmware.com>
Signed-off-by: default avatarRoland Scheidegger <sroland@vmware.com>
Signed-off-by: default avatarZack Rusin <zackr@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211206172620.3139754-8-zack@kde.org
parent b05fa564
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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)
+4 −0
Original line number Diff line number Diff line
@@ -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));
}
+5 −1
Original line number Diff line number Diff line
@@ -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: