radv: enable compiling PS epilogs on-demand for dynamic color blend equations
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20281>
This commit is contained in:

committed by
Marge Bot

parent
daa2aeaa0c
commit
4041be0f6f
@@ -8683,7 +8683,8 @@ radv_emit_all_graphics_states(struct radv_cmd_buffer *cmd_buffer, const struct r
|
|||||||
} else if ((cmd_buffer->state.emitted_graphics_pipeline != cmd_buffer->state.graphics_pipeline ||
|
} else if ((cmd_buffer->state.emitted_graphics_pipeline != cmd_buffer->state.graphics_pipeline ||
|
||||||
(cmd_buffer->state.dirty & (RADV_CMD_DIRTY_DYNAMIC_COLOR_WRITE_MASK |
|
(cmd_buffer->state.dirty & (RADV_CMD_DIRTY_DYNAMIC_COLOR_WRITE_MASK |
|
||||||
RADV_CMD_DIRTY_DYNAMIC_COLOR_BLEND_ENABLE |
|
RADV_CMD_DIRTY_DYNAMIC_COLOR_BLEND_ENABLE |
|
||||||
RADV_CMD_DIRTY_DYNAMIC_ALPHA_TO_COVERAGE_ENABLE)))) {
|
RADV_CMD_DIRTY_DYNAMIC_ALPHA_TO_COVERAGE_ENABLE |
|
||||||
|
RADV_CMD_DIRTY_DYNAMIC_COLOR_BLEND_EQUATION)))) {
|
||||||
ps_epilog = lookup_ps_epilog(cmd_buffer);
|
ps_epilog = lookup_ps_epilog(cmd_buffer);
|
||||||
if (!ps_epilog) {
|
if (!ps_epilog) {
|
||||||
vk_command_buffer_set_error(&cmd_buffer->vk, VK_ERROR_OUT_OF_HOST_MEMORY);
|
vk_command_buffer_set_error(&cmd_buffer->vk, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||||
|
@@ -3805,7 +3805,8 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr
|
|||||||
const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *features = (const void *)ext;
|
const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT *features = (const void *)ext;
|
||||||
if (features->extendedDynamicState3ColorBlendEnable ||
|
if (features->extendedDynamicState3ColorBlendEnable ||
|
||||||
features->extendedDynamicState3ColorWriteMask ||
|
features->extendedDynamicState3ColorWriteMask ||
|
||||||
features->extendedDynamicState3AlphaToCoverageEnable)
|
features->extendedDynamicState3AlphaToCoverageEnable ||
|
||||||
|
features->extendedDynamicState3ColorBlendEquation)
|
||||||
ps_epilogs = true;
|
ps_epilogs = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -2090,7 +2090,8 @@ radv_pipeline_has_dynamic_ps_epilog(const struct radv_graphics_pipeline *pipelin
|
|||||||
/* These dynamic states need to compile PS epilogs on-demand. */
|
/* These dynamic states need to compile PS epilogs on-demand. */
|
||||||
return pipeline->dynamic_states & (RADV_DYNAMIC_COLOR_BLEND_ENABLE |
|
return pipeline->dynamic_states & (RADV_DYNAMIC_COLOR_BLEND_ENABLE |
|
||||||
RADV_DYNAMIC_COLOR_WRITE_MASK |
|
RADV_DYNAMIC_COLOR_WRITE_MASK |
|
||||||
RADV_DYNAMIC_ALPHA_TO_COVERAGE_ENABLE);
|
RADV_DYNAMIC_ALPHA_TO_COVERAGE_ENABLE |
|
||||||
|
RADV_DYNAMIC_COLOR_BLEND_EQUATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct radv_pipeline_key
|
struct radv_pipeline_key
|
||||||
|
Reference in New Issue
Block a user