anv: fix incorrect asserts when combining CPS and per sample interpolation
CPS is dynamically turned off when per sample interpolation is active.
Update the asserts to reflect this.
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 5644011f06
("intel/compiler: Convert wm_prog_key::persample_interp to a tri-state")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23103>
This commit is contained in:
@@ -7405,8 +7405,15 @@ brw_nir_populate_wm_prog_data(const nir_shader *shader,
|
|||||||
(prog_data->barycentric_interp_modes &
|
(prog_data->barycentric_interp_modes &
|
||||||
BRW_BARYCENTRIC_NONPERSPECTIVE_BITS) != 0;
|
BRW_BARYCENTRIC_NONPERSPECTIVE_BITS) != 0;
|
||||||
|
|
||||||
/* You can't be coarse and per-sample */
|
/* The current VK_EXT_graphics_pipeline_library specification requires
|
||||||
assert(!key->coarse_pixel || !key->persample_interp);
|
* coarse to specified at compile time. But per sample interpolation can be
|
||||||
|
* dynamic. So we should never be in a situation where coarse &
|
||||||
|
* persample_interp are both respectively true & BRW_ALWAYS.
|
||||||
|
*
|
||||||
|
* Coarse will dynamically turned off when persample_interp is active.
|
||||||
|
*/
|
||||||
|
assert(!key->coarse_pixel || key->persample_interp != BRW_ALWAYS);
|
||||||
|
|
||||||
prog_data->coarse_pixel_dispatch =
|
prog_data->coarse_pixel_dispatch =
|
||||||
brw_sometimes_invert(prog_data->persample_dispatch);
|
brw_sometimes_invert(prog_data->persample_dispatch);
|
||||||
if (!key->coarse_pixel ||
|
if (!key->coarse_pixel ||
|
||||||
|
@@ -577,10 +577,8 @@ fs_visitor::emit_interpolation_setup_gfx6()
|
|||||||
abld.MAD(coarse_z, coarse_z, z_cy, float_pixel_y);
|
abld.MAD(coarse_z, coarse_z, z_cy, float_pixel_y);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wm_prog_data->uses_src_depth) {
|
if (wm_prog_data->uses_src_depth)
|
||||||
assert(!wm_prog_data->uses_depth_w_coefficients);
|
|
||||||
this->pixel_z = fetch_payload_reg(bld, fs_payload().source_depth_reg);
|
this->pixel_z = fetch_payload_reg(bld, fs_payload().source_depth_reg);
|
||||||
}
|
|
||||||
|
|
||||||
if (wm_prog_data->uses_depth_w_coefficients ||
|
if (wm_prog_data->uses_depth_w_coefficients ||
|
||||||
wm_prog_data->uses_src_depth) {
|
wm_prog_data->uses_src_depth) {
|
||||||
|
Reference in New Issue
Block a user