tu: Implement extendedDynamicState3SampleMask

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18912>
This commit is contained in:
Connor Abbott
2022-09-29 17:58:12 +02:00
committed by Marge Bot
parent 80befbf844
commit f062a64405
3 changed files with 20 additions and 1 deletions
+14
View File
@@ -3158,6 +3158,20 @@ tu_CmdSetDepthClampEnableEXT(VkCommandBuffer commandBuffer,
cmd->state.dirty |= TU_CMD_DIRTY_RAST | TU_CMD_DIRTY_RB_DEPTH_CNTL;
}
VKAPI_ATTR void VKAPI_CALL
tu_CmdSetSampleMaskEXT(VkCommandBuffer commandBuffer,
VkSampleCountFlagBits samples,
const VkSampleMask *pSampleMask)
{
TU_FROM_HANDLE(tu_cmd_buffer, cmd, commandBuffer);
cmd->state.rb_blend_cntl =
(cmd->state.rb_blend_cntl & ~A6XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK) |
A6XX_RB_BLEND_CNTL_SAMPLE_MASK(*pSampleMask & 0xffff);
cmd->state.dirty |= TU_CMD_DIRTY_BLEND;
}
static void
tu_flush_for_access(struct tu_cache_state *cache,
enum tu_cmd_access_mask src_mask,
+1 -1
View File
@@ -766,7 +766,7 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
features->extendedDynamicState3DepthClampEnable = true;
features->extendedDynamicState3DepthClipEnable = true;
features->extendedDynamicState3LogicOpEnable = true;
features->extendedDynamicState3SampleMask = false;
features->extendedDynamicState3SampleMask = true;
features->extendedDynamicState3RasterizationSamples = false;
features->extendedDynamicState3AlphaToCoverageEnable = false;
features->extendedDynamicState3AlphaToOneEnable = false;
+5
View File
@@ -3738,6 +3738,11 @@ tu_pipeline_builder_parse_dynamic(struct tu_pipeline_builder *builder,
~A6XX_RB_DEPTH_CNTL_Z_CLAMP_ENABLE;
dynamic_depth_clamp = true;
break;
case VK_DYNAMIC_STATE_SAMPLE_MASK_EXT:
pipeline->dynamic_state_mask |= BIT(TU_DYNAMIC_STATE_BLEND);
pipeline->blend.rb_blend_cntl_mask &=
~A6XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK;
break;
default:
assert(!"unsupported dynamic state");
break;