Skip to content
Snippets Groups Projects
Commit eb635216 authored by Paulo Zanoni's avatar Paulo Zanoni Committed by Faith Ekstrand
Browse files

intel/compiler: fix nir_op_{i,u}*32 on ICL


On ICL we have the src1 restriction which is applied through
fix_byte_src() and potentially changes the type of the operands from 8
to 32 bits. When this change happens, we fall into the "else if
(bit_size < 32)" case and miscompute src_type because it takes into
consideration bit_size (8) instead of the adjusted size of temp_op
(32). This results in the shader reading unused memory, giving us
mostly failures, but occasional passes due to whatever was already in
the registers we were reading.

This commit fixes a lot of dEQP subgroup i8vec2 tests on ICL, such as:
    dEQP-VK.subgroups.arithmetic.compute.subgroupadd_i8vec2

This can also be verified by simply changing fix_byte_src() to apply
on all platforms.

Fixes: 5847de6e ("intel/compiler: don't use byte operands for src1 on ICL")
Reviewed-by: default avatarIvan Briano <ivan.briano@intel.com>
Reviewed-by: default avatarJason Ekstrand <jason@jlekstrand.net>
Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
parent 7ae506e5
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment