tu: Implement extendedDynamicState3AlphaToOneEnable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18912>
This commit is contained in:
Connor Abbott 2022-09-30 11:53:25 +02:00 committed by Marge Bot
parent 87bdddf8f1
commit 2a19b8d696
3 changed files with 19 additions and 1 deletions

View file

@ -3215,6 +3215,19 @@ tu_CmdSetAlphaToCoverageEnableEXT(VkCommandBuffer commandBuffer,
cmd->state.dirty |= TU_CMD_DIRTY_BLEND;
}
VKAPI_ATTR void VKAPI_CALL
tu_CmdSetAlphaToOneEnableEXT(VkCommandBuffer commandBuffer,
VkBool32 alphaToOneEnable)
{
TU_FROM_HANDLE(tu_cmd_buffer, cmd, commandBuffer);
cmd->state.rb_blend_cntl =
(cmd->state.rb_blend_cntl & ~A6XX_RB_BLEND_CNTL_ALPHA_TO_ONE) |
COND(alphaToOneEnable, A6XX_RB_BLEND_CNTL_ALPHA_TO_ONE);
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,

View file

@ -769,7 +769,7 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
features->extendedDynamicState3SampleMask = true;
features->extendedDynamicState3RasterizationSamples = true;
features->extendedDynamicState3AlphaToCoverageEnable = true;
features->extendedDynamicState3AlphaToOneEnable = false;
features->extendedDynamicState3AlphaToOneEnable = true;
features->extendedDynamicState3DepthClipNegativeOneToOne = false;
features->extendedDynamicState3RasterizationStream = false;
features->extendedDynamicState3ConservativeRasterizationMode = false;

View file

@ -3754,6 +3754,11 @@ tu_pipeline_builder_parse_dynamic(struct tu_pipeline_builder *builder,
pipeline->blend.sp_blend_cntl_mask &=
~A6XX_SP_BLEND_CNTL_ALPHA_TO_COVERAGE;
break;
case VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:
pipeline->dynamic_state_mask |= BIT(TU_DYNAMIC_STATE_BLEND);
pipeline->blend.rb_blend_cntl_mask &=
~A6XX_RB_BLEND_CNTL_ALPHA_TO_ONE;
break;
default:
assert(!"unsupported dynamic state");
break;