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:
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user