Samuel Iglesias Gonsálvez <sigles...@igalia.com> writes: > So far we only used instructions with this size in situations where we > did not operate per-channel and we wanted to ignore the execution mask, > but gen7 fp64 will need to emit code with a width of 4 that needs > normal execution masking. > --- > src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp > b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp > index d25d26a..07581d2 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp > @@ -1649,7 +1649,6 @@ fs_generator::generate_code(const cfg_t *cfg, int > dispatch_width) > brw_set_default_acc_write_control(p, inst->writes_accumulator); > brw_set_default_exec_size(p, cvt(inst->exec_size) - 1); > > - assert(inst->force_writemask_all || inst->exec_size >= 8);
Another possibility would be to relax the assertion to check that "inst->force_writemask_all || inst->exec_size >= 4" -- Because you can only control the channel enable group with nibble granularity at best it's unpractical to split instructions into chunks of execution size less than four. SIMD4 though definitely makes sense because of FP64. Either way patch is: Reviewed-by: Francisco Jerez <curroje...@riseup.net> > assert(inst->force_writemask_all || inst->group % inst->exec_size == > 0); > assert(inst->base_mrf + inst->mlen <= BRW_MAX_MRF(devinfo->gen)); > assert(inst->mlen <= BRW_MAX_MSG_LENGTH); > -- > 2.7.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev