To reproduce: /home/tstellar/piglit/bin/texsubimage cube_map_array pbo -auto -fbo
I've spent some time debugging this and it appears the result from the v_cubeid_f32
instruction is causing the shader to access memory outside the bounds of the texture.
If I replace v_cubeid_f32 $dst, $src0, $src1, $src2 instructions with v_mov_f32 $dst, 0.0 or v_mov_f32 $dst, 1.0
I no longer see vm protection faults.
However, if I replace the v_cubeid_f32 instructions with v_mov_f32 $dst, 2.0 then the vm protection faults return. So, it seems the bad case is whenever the face id is computed as >= 2.0f.
Possibly fixed by this patch: