mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 13:10:10 +01:00
anv: enable fragmentShadingRateWithShaderSampleMask on Xe2+
Before DG2, the value the HW gives us seems to be backwards, but since DG2 this is supposed to be supported just fine. However, due to Wa_22012766191, enable it only for Xe2 and up. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38641>
This commit is contained in:
parent
df15770785
commit
094f8f041f
3 changed files with 13 additions and 5 deletions
|
|
@ -1042,9 +1042,13 @@ brw_nir_populate_wm_prog_data(nir_shader *shader,
|
|||
prog_data->coarse_pixel_dispatch =
|
||||
intel_sometimes_invert(prog_data->persample_dispatch);
|
||||
if (!key->coarse_pixel ||
|
||||
prog_data->uses_omask ||
|
||||
/* DG2 should support this, but Wa_22012766191 says there are issues
|
||||
* with CPS 1x1 + MSAA + FS writing to oMask.
|
||||
*/
|
||||
(devinfo->verx10 < 200 &&
|
||||
(prog_data->uses_omask ||
|
||||
prog_data->uses_sample_mask)) ||
|
||||
prog_data->sample_shading ||
|
||||
prog_data->uses_sample_mask ||
|
||||
(prog_data->computed_depth_mode != BRW_PSCDEPTH_OFF) ||
|
||||
prog_data->computed_stencil ||
|
||||
devinfo->ver < 11) {
|
||||
|
|
|
|||
|
|
@ -3678,14 +3678,18 @@ emit_sampleid_setup(nir_to_brw_state &ntb)
|
|||
static brw_reg
|
||||
emit_samplemaskin_setup(nir_to_brw_state &ntb)
|
||||
{
|
||||
const intel_device_info *devinfo = ntb.devinfo;
|
||||
const brw_builder &bld = ntb.bld;
|
||||
brw_shader &s = ntb.s;
|
||||
|
||||
assert(s.stage == MESA_SHADER_FRAGMENT);
|
||||
struct brw_wm_prog_data *wm_prog_data = brw_wm_prog_data(s.prog_data);
|
||||
|
||||
/* The HW doesn't provide us with expected values. */
|
||||
assert(wm_prog_data->coarse_pixel_dispatch != INTEL_ALWAYS);
|
||||
/* DG2 should support this, but Wa_22012766191 says there are issues
|
||||
* with CPS 1x1 + MSAA + FS writing to oMask.
|
||||
*/
|
||||
assert(devinfo->verx10 >= 200 ||
|
||||
wm_prog_data->coarse_pixel_dispatch != INTEL_ALWAYS);
|
||||
|
||||
brw_reg coverage_mask =
|
||||
brw_fetch_payload_reg(bld, s.fs_payload().sample_mask_in_reg, BRW_TYPE_UD);
|
||||
|
|
|
|||
|
|
@ -1504,7 +1504,7 @@ get_properties(const struct anv_physical_device *pdevice,
|
|||
VK_SAMPLE_COUNT_4_BIT : VK_SAMPLE_COUNT_16_BIT;
|
||||
props->fragmentShadingRateWithShaderDepthStencilWrites = false;
|
||||
props->fragmentShadingRateWithSampleMask = true;
|
||||
props->fragmentShadingRateWithShaderSampleMask = false;
|
||||
props->fragmentShadingRateWithShaderSampleMask = devinfo->verx10 >= 200;
|
||||
props->fragmentShadingRateWithConservativeRasterization = true;
|
||||
props->fragmentShadingRateWithFragmentShaderInterlock = true;
|
||||
props->fragmentShadingRateWithCustomSampleLocations = true;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue