nvk: Support extended dynamic state for alpha to coverage/one

This is needed for EXT_shader_object. Move to dynamic state.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24872>
This commit is contained in:
George Ouzounoudis 2023-08-21 20:32:22 +03:00 committed by Faith Ekstrand
parent b42fae61bb
commit 8b178f9ce4
3 changed files with 11 additions and 7 deletions

View file

@ -1344,6 +1344,15 @@ nvk_flush_ms_state(struct nvk_cmd_buffer *cmd)
const struct vk_dynamic_graphics_state *dyn =
&cmd->vk.dynamic_graphics_state;
if (BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_MS_ALPHA_TO_COVERAGE_ENABLE) ||
BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_MS_ALPHA_TO_ONE_ENABLE)) {
struct nv_push *p = nvk_cmd_buffer_push(cmd, 2);
P_IMMD(p, NV9097, SET_ANTI_ALIAS_ALPHA_CONTROL, {
.alpha_to_coverage = dyn->ms.alpha_to_coverage_enable,
.alpha_to_one = dyn->ms.alpha_to_one_enable,
});
}
if (BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_MS_SAMPLE_LOCATIONS) ||
BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_MS_SAMPLE_LOCATIONS_ENABLE)) {
const struct vk_sample_locations_state *sl;

View file

@ -70,11 +70,6 @@ emit_pipeline_ms_state(struct nv_push *p,
const struct vk_multisample_state *ms,
bool force_max_samples)
{
P_IMMD(p, NV9097, SET_ANTI_ALIAS_ALPHA_CONTROL, {
.alpha_to_coverage = ms->alpha_to_coverage_enable,
.alpha_to_one = ms->alpha_to_one_enable,
});
const float min_sample_shading = force_max_samples ? 1 :
(ms->sample_shading_enable ? CLAMP(ms->min_sample_shading, 0, 1) : 0);
uint32_t min_samples = ceilf(ms->rasterization_samples * min_sample_shading);

View file

@ -394,8 +394,8 @@ nvk_get_device_features(const struct nv_device_info *info,
.extendedDynamicState3PolygonMode = true,
.extendedDynamicState3RasterizationSamples = false,
.extendedDynamicState3SampleMask = true,
.extendedDynamicState3AlphaToCoverageEnable = false,
.extendedDynamicState3AlphaToOneEnable = false,
.extendedDynamicState3AlphaToCoverageEnable = true,
.extendedDynamicState3AlphaToOneEnable = true,
.extendedDynamicState3LogicOpEnable = true,
.extendedDynamicState3ColorBlendEnable = true,
.extendedDynamicState3ColorBlendEquation = true,