On Thu, Dec 17, 2015 at 12:31 PM, Connor Abbott <cwabbo...@gmail.com> wrote: > On Thu, Dec 17, 2015 at 11:44 AM, Matt Turner <matts...@gmail.com> wrote: >> On Wed, Dec 9, 2015 at 4:15 AM, Iago Toral Quiroga <ito...@igalia.com> wrote: >>> Right now we rely on the code at the bottom of brw_set_dest to set the >>> correct execution size for anything that does not operate on a full SIMD >>> register (dst.width < BRW_EXECUTE_8). However, this won't work with fp64, >>> where operands are twice as big and we see instructions with a horizontal >>> width of 4 that still require an execution size of 8. We cannot fix this by >>> simply checking the type of the operands involved and skip the automatic >>> execsize adjustment when they are doubles because we can also operate on >>> doubles as integers (for pack and unpack operations for example). >> >> Can you give an example of when checking the type wouldn't be >> sufficient? Presumably packDouble2x32/unpackDouble2x32? What code do >> they generate? Could we look at the destination's stride as well? > > Yes, packDouble2x32 is what would cause the same issue, since it turns > into two 32-bit MOV's with a destination stride of 2 (and offset of 0 > and 1, ofc). We could check for the stride, but if we really don't > want to change this code, the better way to go would be to avoid the > width adjustment that causes this whole thing to happen for > destination registers, since everything other than this piece of code > ignores the destination width and vstride. But that being said, this > code is a hack since it breaks the assumption that fs_inst::exec_size > always equals the final ExecSize of the instruction, and Iago and I > agreed to fix it (or at least for now, do the portion of the fix > needed for fp64) rather than work around it.
Not sure if you guys are thinking about it, but a lot of these things that apply to doubles also apply to ARB_gpu_shader_int64. While you obviously don't need to support it now, you may want to keep it in mind as you make design decisions. Cheers, -ilia _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev