panfrost: Track coverage, early fragment tests
These extra pieces of data are needed to correctly compute pixel kill / zs update settings. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9105>
This commit is contained in:
parent
3399673ba4
commit
a25b9cd8d0
|
@ -174,6 +174,8 @@ pan_shader_compile(const struct panfrost_device *dev,
|
||||||
info->fs.writes_depth = true;
|
info->fs.writes_depth = true;
|
||||||
if (s->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_STENCIL))
|
if (s->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_STENCIL))
|
||||||
info->fs.writes_stencil = true;
|
info->fs.writes_stencil = true;
|
||||||
|
if (s->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_SAMPLE_MASK))
|
||||||
|
info->fs.writes_coverage = true;
|
||||||
|
|
||||||
uint64_t outputs_read = s->info.outputs_read;
|
uint64_t outputs_read = s->info.outputs_read;
|
||||||
if (outputs_read & BITFIELD64_BIT(FRAG_RESULT_COLOR))
|
if (outputs_read & BITFIELD64_BIT(FRAG_RESULT_COLOR))
|
||||||
|
@ -187,6 +189,7 @@ pan_shader_compile(const struct panfrost_device *dev,
|
||||||
|
|
||||||
info->fs.can_discard = s->info.fs.uses_discard;
|
info->fs.can_discard = s->info.fs.uses_discard;
|
||||||
info->fs.helper_invocations = s->info.fs.needs_quad_helper_invocations;
|
info->fs.helper_invocations = s->info.fs.needs_quad_helper_invocations;
|
||||||
|
info->fs.early_fragment_tests = s->info.fs.early_fragment_tests;
|
||||||
|
|
||||||
/* List of reasons we need to execute frag shaders when things
|
/* List of reasons we need to execute frag shaders when things
|
||||||
* are masked off */
|
* are masked off */
|
||||||
|
|
|
@ -163,12 +163,14 @@ struct pan_shader_info {
|
||||||
bool can_discard;
|
bool can_discard;
|
||||||
bool writes_depth;
|
bool writes_depth;
|
||||||
bool writes_stencil;
|
bool writes_stencil;
|
||||||
|
bool writes_coverage;
|
||||||
bool sidefx;
|
bool sidefx;
|
||||||
bool reads_sample_id;
|
bool reads_sample_id;
|
||||||
bool reads_sample_pos;
|
bool reads_sample_pos;
|
||||||
bool reads_sample_mask_in;
|
bool reads_sample_mask_in;
|
||||||
bool reads_helper_invocation;
|
bool reads_helper_invocation;
|
||||||
bool sample_shading;
|
bool sample_shading;
|
||||||
|
bool early_fragment_tests;
|
||||||
BITSET_WORD outputs_read;
|
BITSET_WORD outputs_read;
|
||||||
} fs;
|
} fs;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue