intel/fs: Shuffle can't handle source modifiers
On Gen7, we have to split shuffles into two MOVs for 64-bit types so we
can't handle source modifiers. On Gen12.5, we have to use integer types
all the time so we can't use them there either. Fixing that will be a
different commit but it interacts with this one.
Fixes: 90c9f29518
"i965/fs: Add support for nir_intrinsic_shuffle"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9068>
This commit is contained in:

committed by
Marge Bot

parent
12fa219768
commit
3ce6ca7214
@@ -600,6 +600,9 @@ fs_generator::generate_shuffle(fs_inst *inst,
|
|||||||
struct brw_reg src,
|
struct brw_reg src,
|
||||||
struct brw_reg idx)
|
struct brw_reg idx)
|
||||||
{
|
{
|
||||||
|
assert(src.file == BRW_GENERAL_REGISTER_FILE);
|
||||||
|
assert(!src.abs && !src.negate);
|
||||||
|
|
||||||
/* Ivy bridge has some strange behavior that makes this a real pain to
|
/* Ivy bridge has some strange behavior that makes this a real pain to
|
||||||
* implement for 64-bit values so we just don't bother.
|
* implement for 64-bit values so we just don't bother.
|
||||||
*/
|
*/
|
||||||
|
@@ -949,6 +949,7 @@ backend_instruction::can_do_source_mods() const
|
|||||||
case SHADER_OPCODE_BROADCAST:
|
case SHADER_OPCODE_BROADCAST:
|
||||||
case SHADER_OPCODE_CLUSTER_BROADCAST:
|
case SHADER_OPCODE_CLUSTER_BROADCAST:
|
||||||
case SHADER_OPCODE_MOV_INDIRECT:
|
case SHADER_OPCODE_MOV_INDIRECT:
|
||||||
|
case SHADER_OPCODE_SHUFFLE:
|
||||||
return false;
|
return false;
|
||||||
default:
|
default:
|
||||||
return true;
|
return true;
|
||||||
|
Reference in New Issue
Block a user