tu: Impement extendedDynamicState3RasterizationStream
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18912>
This commit is contained in:
@@ -3255,6 +3255,19 @@ tu_CmdSetDepthClipNegativeOneToOneEXT(VkCommandBuffer commandBuffer,
|
||||
cmd->state.dirty |= TU_CMD_DIRTY_RAST | TU_CMD_DIRTY_VIEWPORTS;
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
tu_CmdSetRasterizationStreamEXT(VkCommandBuffer commandBuffer,
|
||||
uint32_t rasterizationStream)
|
||||
{
|
||||
TU_FROM_HANDLE(tu_cmd_buffer, cmd, commandBuffer);
|
||||
|
||||
cmd->state.pc_raster_cntl =
|
||||
(cmd->state.pc_raster_cntl & ~A6XX_PC_RASTER_CNTL_STREAM__MASK) |
|
||||
A6XX_PC_RASTER_CNTL_STREAM(rasterizationStream);
|
||||
|
||||
cmd->state.dirty |= TU_CMD_DIRTY_PC_RASTER_CNTL;
|
||||
}
|
||||
|
||||
static void
|
||||
tu_flush_for_access(struct tu_cache_state *cache,
|
||||
enum tu_cmd_access_mask src_mask,
|
||||
|
||||
@@ -771,7 +771,7 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
|
||||
features->extendedDynamicState3AlphaToCoverageEnable = true;
|
||||
features->extendedDynamicState3AlphaToOneEnable = true;
|
||||
features->extendedDynamicState3DepthClipNegativeOneToOne = true;
|
||||
features->extendedDynamicState3RasterizationStream = false;
|
||||
features->extendedDynamicState3RasterizationStream = true;
|
||||
features->extendedDynamicState3ConservativeRasterizationMode = false;
|
||||
features->extendedDynamicState3ExtraPrimitiveOverestimationSize = false;
|
||||
features->extendedDynamicState3LineRasterizationMode = false;
|
||||
|
||||
@@ -3772,6 +3772,11 @@ tu_pipeline_builder_parse_dynamic(struct tu_pipeline_builder *builder,
|
||||
~A6XX_GRAS_CL_CNTL_ZERO_GB_SCALE_Z;
|
||||
dynamic_viewport_range = true;
|
||||
break;
|
||||
case VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT:
|
||||
pipeline->dynamic_state_mask |= BIT(TU_DYNAMIC_STATE_PC_RASTER_CNTL);
|
||||
pipeline->rast.pc_raster_cntl_mask &=
|
||||
~A6XX_PC_RASTER_CNTL_STREAM__MASK;
|
||||
break;
|
||||
default:
|
||||
assert(!"unsupported dynamic state");
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user