if (program->gfx_level >= GFX11)
target =
program->has_color_exports ? V_008DFC_SQ_EXP_MRT : V_008DFC_SQ_EXP_MRTZ;
- bld.exp(aco_opcode::exp, Operand(v1), Operand(v1), Operand(v1), Operand(v1), 0,
- target, false, true, true);
+ if (program->stage == fragment_fs)
+ bld.exp(aco_opcode::exp, Operand(v1), Operand(v1), Operand(v1), Operand(v1),
+ 0, target, false, true, true);
if (should_dealloc_vgprs)
bld.sopp(aco_opcode::s_sendmsg, -1, sendmsg_dealloc_vgprs);
bld.sopp(aco_opcode::s_endpgm);
}
case nir_intrinsic_rt_return_amd: {
if (shader->info.stage == MESA_SHADER_RAYGEN) {
- nir_store_var(&b_shader, vars->idx, nir_imm_int(&b_shader, 0), 1);
+ nir_terminate(&b_shader);
break;
}
insert_rt_return(&b_shader, vars);
nir_store_var(&b, vars.launch_size, nir_vec(&b, xyz, 3), 0x7);
nir_loop *loop = nir_push_loop(&b);
-
- nir_push_if(&b, nir_ieq_imm(&b, nir_load_var(&b, vars.idx), 0));
- nir_jump(&b, nir_jump_break);
- nir_pop_if(&b, NULL);
-
nir_ssa_def *idx = nir_load_var(&b, vars.idx);
/* Insert traversal shader */