[Mesa-dev] [PATCH] r600: shader CF_OP_VTX also doesn't use the EOP bit.
Gert Wollny
gw.fossdev at gmail.com
Wed Nov 15 09:04:56 UTC 2017
Am Mittwoch, den 15.11.2017, 11:28 +1000 schrieb Dave Airlie:
>
> I'll likely apply this as well at some point, that test however hangs
> my cayman with or without my patch (and your patch doesn't do
> anything on cayman).
BTW:Â valgrind showed that there was some problem in sb in the parser
(branch based on un-unitialized value), and by changing
r600_shader.c:3121; r600_shader_from_tgsi
} else if (ctx.type == PIPE_SHADER_TESS_EVAL) {
ctx.tess_input_info = 0;
ctx.tess_output_info = ctx.bc->ar_reg + 3;
- ctx.temp_reg = ctx.bc->ar_reg + 4;
+ ctx.temp_reg = ctx.bc->ar_reg + 5;
} else if (ctx.type == PIPE_SHADER_GEOMETRY) {
ctx.gs_export_gpr_tregs[0] = ctx.bc->ar_reg + 3;
ctx.gs_export_gpr_tregs[1] = ctx.bc->ar_reg + 4;
ctx.gs_export_gpr_tregs[2] = ctx.bc->ar_reg + 5;
the GPU lockup what triggered reliably for me on BARTS.
Running this with R600_DUMP_SHADERS=1 also crashed, because sb accessed
unallocated memory trying to decode non-existing instructions.
maybe that helps to locate the problem on cayman.
Best,
Gert
More information about the mesa-dev
mailing list