From 2f6d1f1f31435adc39031693e12ecc17950139f0 Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Sat, 24 May 2025 16:15:22 +0200 Subject: [PATCH] zink: remove unscaled poly offset support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This was incorrect anyway... Reviewed-by: Mike Blumenkrantz Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/zink/zink_context.c | 25 ------------------------- src/gallium/drivers/zink/zink_draw.cpp | 6 +----- src/gallium/drivers/zink/zink_screen.c | 13 ------------- src/gallium/drivers/zink/zink_state.c | 4 +--- src/gallium/drivers/zink/zink_types.h | 3 --- 5 files changed, 2 insertions(+), 49 deletions(-) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 850d429751c..727a50b4e24 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -3959,7 +3959,6 @@ zink_set_framebuffer_state(struct pipe_context *pctx, } } } - unsigned depth_bias_scale_factor = ctx->depth_bias_scale_factor; if (ctx->fb_state.zsbuf.texture) { struct pipe_surface *psurf = ctx->fb_zsbuf; struct zink_surface *transient = zink_transient_surface(psurf); @@ -3972,27 +3971,6 @@ zink_set_framebuffer_state(struct pipe_context *pctx, ctx->fb_layer_mismatch |= BITFIELD_BIT(PIPE_MAX_COLOR_BUFS); zink_resource(psurf->texture)->fb_bind_count++; zink_resource(psurf->texture)->fb_binds |= BITFIELD_BIT(PIPE_MAX_COLOR_BUFS); - switch (psurf->format) { - case PIPE_FORMAT_Z16_UNORM: - case PIPE_FORMAT_Z16_UNORM_S8_UINT: - ctx->depth_bias_scale_factor = zink_screen(ctx->base.screen)->driver_workarounds.z16_unscaled_bias; - break; - case PIPE_FORMAT_Z24X8_UNORM: - case PIPE_FORMAT_Z24_UNORM_S8_UINT: - case PIPE_FORMAT_X24S8_UINT: - case PIPE_FORMAT_X8Z24_UNORM: - ctx->depth_bias_scale_factor = zink_screen(ctx->base.screen)->driver_workarounds.z24_unscaled_bias; - break; - case PIPE_FORMAT_Z32_FLOAT: - case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: - case PIPE_FORMAT_Z32_UNORM: - ctx->depth_bias_scale_factor = 1<<23; - break; - default: - ctx->depth_bias_scale_factor = 0; - } - } else { - ctx->depth_bias_scale_factor = 0; } if (ctx->fb_state.resolve) { @@ -4008,9 +3986,6 @@ zink_set_framebuffer_state(struct pipe_context *pctx, pipe_resource_reference(&pres, NULL); } } - if (depth_bias_scale_factor != ctx->depth_bias_scale_factor && - ctx->rast_state && ctx->rast_state->base.offset_units_unscaled) - ctx->depth_bias_changed = true; rebind_fb_state(ctx, NULL, true); ctx->fb_state.samples = MAX2(samples, 1); if (ctx->fb_state.width != w || ctx->fb_state.height != h) diff --git a/src/gallium/drivers/zink/zink_draw.cpp b/src/gallium/drivers/zink/zink_draw.cpp index d840f2ff180..1ef5a507c6f 100644 --- a/src/gallium/drivers/zink/zink_draw.cpp +++ b/src/gallium/drivers/zink/zink_draw.cpp @@ -689,11 +689,7 @@ zink_draw(struct pipe_context *pctx, bool using_depth_bias = zink_prim_type(ctx, dinfo) == MESA_PRIM_TRIANGLES && rast_state->offset_fill; if (BATCH_CHANGED || using_depth_bias != ctx->was_using_depth_bias || ctx->depth_bias_changed) { if (using_depth_bias) { - if (rast_state->base.offset_units_unscaled) { - VKCTX(CmdSetDepthBias)(bs->cmdbuf, rast_state->offset_units * ctx->depth_bias_scale_factor, rast_state->offset_clamp, rast_state->offset_scale); - } else { - VKCTX(CmdSetDepthBias)(bs->cmdbuf, rast_state->offset_units, rast_state->offset_clamp, rast_state->offset_scale); - } + VKCTX(CmdSetDepthBias)(bs->cmdbuf, rast_state->offset_units, rast_state->offset_clamp, rast_state->offset_scale); } else { VKCTX(CmdSetDepthBias)(bs->cmdbuf, 0.0f, 0.0f, 0.0f); } diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index a64e70d5562..7c5a405b40d 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -790,8 +790,6 @@ zink_init_screen_caps(struct zink_screen *screen) screen->info.have_KHR_sampler_mirror_clamp_to_edge || (screen->info.have_vulkan12 && screen->info.feats12.samplerMirrorClampToEdge); - caps->polygon_offset_units_unscaled = true; - caps->polygon_offset_clamp = screen->info.feats.features.depthBiasClamp; caps->query_pipeline_statistics_single = @@ -2859,17 +2857,6 @@ init_driver_workarounds(struct zink_screen *screen) break; } - if (zink_driverid(screen) == VK_DRIVER_ID_AMD_OPEN_SOURCE || - zink_driverid(screen) == VK_DRIVER_ID_AMD_PROPRIETARY || - zink_driverid(screen) == VK_DRIVER_ID_NVIDIA_PROPRIETARY || - zink_driverid(screen) == VK_DRIVER_ID_MESA_RADV) - screen->driver_workarounds.z24_unscaled_bias = 1<<23; - else - screen->driver_workarounds.z24_unscaled_bias = 1<<24; - if (zink_driverid(screen) == VK_DRIVER_ID_NVIDIA_PROPRIETARY) - screen->driver_workarounds.z16_unscaled_bias = 1<<15; - else - screen->driver_workarounds.z16_unscaled_bias = 1<<16; /* these drivers don't use VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT, so it can always be set */ switch (zink_driverid(screen)) { case VK_DRIVER_ID_MESA_RADV: diff --git a/src/gallium/drivers/zink/zink_state.c b/src/gallium/drivers/zink/zink_state.c index 335cab0637c..2f048d49145 100644 --- a/src/gallium/drivers/zink/zink_state.c +++ b/src/gallium/drivers/zink/zink_state.c @@ -659,9 +659,7 @@ zink_create_rasterizer_state(struct pipe_context *pctx, } state->offset_fill = util_get_offset(rs_state, rs_state->fill_front); - state->offset_units = rs_state->offset_units; - if (!rs_state->offset_units_unscaled) - state->offset_units *= 2; + state->offset_units = rs_state->offset_units * 2; state->offset_clamp = rs_state->offset_clamp; state->offset_scale = rs_state->offset_scale; diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index 32737d868fe..c54bf2217ee 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -1519,8 +1519,6 @@ struct zink_screen { bool inconsistent_interpolation; bool can_2d_view_sparse; bool general_depth_layout; - unsigned z16_unscaled_bias; - unsigned z24_unscaled_bias; } driver_workarounds; }; @@ -1788,7 +1786,6 @@ struct zink_context { struct tc_renderpass_info tc_info; } dynamic_fb; uint32_t fb_layer_mismatch; //bitmask - unsigned depth_bias_scale_factor; struct set rendering_state_cache[6]; //[util_logbase2_ceil(msrtss samplecount)] struct zink_resource *swapchain; VkExtent2D swapchain_size;