mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-27 23:30:10 +01:00
pan/decode: Validate blend shaders don't access I/O
We could do better by forcing the checks to *equal* zero (right now, an indeterminate answer will pass the checks), but this is a start to guard against some egregious cases. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
parent
ded9a68d8f
commit
139708bbab
1 changed files with 21 additions and 2 deletions
|
|
@ -2114,8 +2114,27 @@ pandecode_vertex_tiler_postfix_pre(
|
|||
else
|
||||
shader = pandecode_midgard_blend_mrt(blend_base, job_no, i);
|
||||
|
||||
if (shader & ~0xF)
|
||||
pandecode_shader_disassemble(shader, job_no, job_type, false, 0);
|
||||
if (shader & ~0xF) {
|
||||
struct midgard_disasm_stats stats =
|
||||
pandecode_shader_disassemble(shader, job_no, job_type, false, 0);
|
||||
|
||||
bool has_texture = (stats.texture_count > 0);
|
||||
bool has_sampler = (stats.sampler_count > 0);
|
||||
bool has_attribute = (stats.attribute_count > 0);
|
||||
bool has_varying = (stats.varying_count > 0);
|
||||
bool has_uniform = (stats.uniform_count > 0);
|
||||
bool has_ubo = (stats.uniform_buffer_count > 0);
|
||||
|
||||
if (has_texture || has_sampler)
|
||||
pandecode_msg("XXX: blend shader accessing textures\n");
|
||||
|
||||
if (has_attribute || has_varying)
|
||||
pandecode_msg("XXX: blend shader accessing interstage\n");
|
||||
|
||||
if (has_uniform || has_ubo)
|
||||
pandecode_msg("XXX: blend shader accessing uniforms\n");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue