anv: Convert to using vk_graphics_pipeline_state
This attempts to be a pretty minimal refactor. We just switch all the state emit code to use the new graphics pipeline state object. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17564>
This commit is contained in:

committed by
Marge Bot

parent
44cbb7d9c8
commit
b656957c56
@@ -76,6 +76,7 @@
|
||||
#include "vk_drm_syncobj.h"
|
||||
#include "vk_enum_defines.h"
|
||||
#include "vk_framebuffer.h"
|
||||
#include "vk_graphics_state.h"
|
||||
#include "vk_image.h"
|
||||
#include "vk_instance.h"
|
||||
#include "vk_pipeline_cache.h"
|
||||
@@ -2262,64 +2263,65 @@ typedef enum anv_cmd_dirty_bits anv_cmd_dirty_mask_t;
|
||||
ANV_CMD_DIRTY_DYNAMIC_PRIMITIVE_RESTART_ENABLE)
|
||||
|
||||
static inline enum anv_cmd_dirty_bits
|
||||
anv_cmd_dirty_bit_for_vk_dynamic_state(VkDynamicState vk_state)
|
||||
anv_cmd_dirty_bit_for_mesa_vk_dynamic_graphics_state(
|
||||
enum mesa_vk_dynamic_graphics_state state)
|
||||
{
|
||||
switch (vk_state) {
|
||||
case VK_DYNAMIC_STATE_VIEWPORT:
|
||||
case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:
|
||||
switch (state) {
|
||||
case MESA_VK_DYNAMIC_VP_VIEWPORT_COUNT:
|
||||
case MESA_VK_DYNAMIC_VP_VIEWPORTS:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_VIEWPORT;
|
||||
case VK_DYNAMIC_STATE_SCISSOR:
|
||||
case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:
|
||||
case MESA_VK_DYNAMIC_VP_SCISSOR_COUNT:
|
||||
case MESA_VK_DYNAMIC_VP_SCISSORS:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_SCISSOR;
|
||||
case VK_DYNAMIC_STATE_LINE_WIDTH:
|
||||
case MESA_VK_DYNAMIC_RS_LINE_WIDTH:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_LINE_WIDTH;
|
||||
case VK_DYNAMIC_STATE_DEPTH_BIAS:
|
||||
case MESA_VK_DYNAMIC_RS_DEPTH_BIAS_FACTORS:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_DEPTH_BIAS;
|
||||
case VK_DYNAMIC_STATE_BLEND_CONSTANTS:
|
||||
case MESA_VK_DYNAMIC_CB_BLEND_CONSTANTS:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_BLEND_CONSTANTS;
|
||||
case VK_DYNAMIC_STATE_DEPTH_BOUNDS:
|
||||
case MESA_VK_DYNAMIC_DS_DEPTH_BOUNDS_TEST_BOUNDS:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_DEPTH_BOUNDS;
|
||||
case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:
|
||||
case MESA_VK_DYNAMIC_DS_STENCIL_COMPARE_MASK:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_STENCIL_COMPARE_MASK;
|
||||
case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:
|
||||
case MESA_VK_DYNAMIC_DS_STENCIL_WRITE_MASK:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_STENCIL_WRITE_MASK;
|
||||
case VK_DYNAMIC_STATE_STENCIL_REFERENCE:
|
||||
case MESA_VK_DYNAMIC_DS_STENCIL_REFERENCE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_STENCIL_REFERENCE;
|
||||
case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:
|
||||
case MESA_VK_DYNAMIC_RS_LINE_STIPPLE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_LINE_STIPPLE;
|
||||
case VK_DYNAMIC_STATE_CULL_MODE:
|
||||
case MESA_VK_DYNAMIC_RS_CULL_MODE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_CULL_MODE;
|
||||
case VK_DYNAMIC_STATE_FRONT_FACE:
|
||||
case MESA_VK_DYNAMIC_RS_FRONT_FACE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_FRONT_FACE;
|
||||
case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:
|
||||
case MESA_VK_DYNAMIC_IA_PRIMITIVE_TOPOLOGY:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_PRIMITIVE_TOPOLOGY;
|
||||
case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:
|
||||
case MESA_VK_DYNAMIC_VI_BINDING_STRIDES:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_VERTEX_INPUT_BINDING_STRIDE;
|
||||
case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:
|
||||
case MESA_VK_DYNAMIC_DS_DEPTH_TEST_ENABLE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_DEPTH_TEST_ENABLE;
|
||||
case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:
|
||||
case MESA_VK_DYNAMIC_DS_DEPTH_WRITE_ENABLE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_DEPTH_WRITE_ENABLE;
|
||||
case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:
|
||||
case MESA_VK_DYNAMIC_DS_DEPTH_COMPARE_OP:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_DEPTH_COMPARE_OP;
|
||||
case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:
|
||||
case MESA_VK_DYNAMIC_DS_DEPTH_BOUNDS_TEST_ENABLE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_DEPTH_BOUNDS_TEST_ENABLE;
|
||||
case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:
|
||||
case MESA_VK_DYNAMIC_DS_STENCIL_TEST_ENABLE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_STENCIL_TEST_ENABLE;
|
||||
case VK_DYNAMIC_STATE_STENCIL_OP:
|
||||
case MESA_VK_DYNAMIC_DS_STENCIL_OP:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_STENCIL_OP;
|
||||
case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:
|
||||
case MESA_VK_DYNAMIC_MS_SAMPLE_LOCATIONS:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_SAMPLE_LOCATIONS;
|
||||
case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:
|
||||
case MESA_VK_DYNAMIC_CB_COLOR_WRITE_ENABLES:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_COLOR_BLEND_STATE;
|
||||
case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:
|
||||
case MESA_VK_DYNAMIC_FSR:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_SHADING_RATE;
|
||||
case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:
|
||||
case MESA_VK_DYNAMIC_RS_RASTERIZER_DISCARD_ENABLE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_RASTERIZER_DISCARD_ENABLE;
|
||||
case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:
|
||||
case MESA_VK_DYNAMIC_RS_DEPTH_BIAS_ENABLE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_DEPTH_BIAS_ENABLE;
|
||||
case VK_DYNAMIC_STATE_LOGIC_OP_EXT:
|
||||
case MESA_VK_DYNAMIC_CB_LOGIC_OP:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_LOGIC_OP;
|
||||
case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:
|
||||
case MESA_VK_DYNAMIC_IA_PRIMITIVE_RESTART_ENABLE:
|
||||
return ANV_CMD_DIRTY_DYNAMIC_PRIMITIVE_RESTART_ENABLE;
|
||||
default:
|
||||
assert(!"Unsupported dynamic state");
|
||||
|
Reference in New Issue
Block a user