zink: remove unscaled poly offset support

This was incorrect anyway...

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35147>
This commit is contained in:
Georg Lehmann
2025-05-24 16:15:22 +02:00
committed by Marge Bot
parent 806388a3a1
commit 2f6d1f1f31
5 changed files with 2 additions and 49 deletions
-25
View File
@@ -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)
+1 -5
View File
@@ -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);
}
-13
View File
@@ -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:
+1 -3
View File
@@ -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;
-3
View File
@@ -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;