<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 4, 2014 at 11:03 PM, Matt Turner <span dir="ltr"><<a href="mailto:mattst88@gmail.com" target="_blank">mattst88@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On Thu, Sep 4, 2014 at 10:19 PM, Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>> wrote:<br>
> This is the first chunk of patches in my work on adding instruction and<br>
> register widths to the fs backend.  Eventually, this will allow us to more<br>
> easily emit 8-wide instructions in SIMD16 mode from the fs_visitor level.<br>
> More patches will be coming to add a width field to the registers and allow<br>
> for more fine-grained register allocation.<br>
<br>
</span>I think we're using the wrong terminology here. Instructions don't<br>
have widths; registers do. Instructions have execution sizes (and so<br>
you should use the BRW_EXECUTE_* macros).<br></blockquote><div> <br></div><div>Sure, I can call it execution size instead of width.  I don't really care if we use the integer value (as we do for dispatch width) or the macro enumeration.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I guess I'm having a hard time seeing the whole picture, i.e., what<br>
explicit instruction execsizes buys us. Is there a branch with work<br>
that builds on this that I should look at?<br>
</blockquote></div><br></div><div class="gmail_extra">Ok, I'm in the process of trying to put some pieces together.  I'll let you know when I've got a bigger picture branch for you to poke at.  I'm fine if it rots on the list until then.<br><br></div><div class="gmail_extra">What's the point?  The short answer is that it makes things more explicit.  Sure, we can get all this information from fs_visitor::dispatch_width, fs_inst::force_uncompressed, and fs_inst::force_sechalf, but this makes the execution size an explicit concept.  Also, for 32-wide dispatch (which we will need for compute shaders), the current collection of boolean flags won't work.  I would like to replace force_sechalf with an execution offset that's either 0 or 1 in 16-wide and 0, 1, 2, or 3 in 32-wide.<br><br></div><div class="gmail_extra">Thanks,<br></div><div class="gmail_extra">--Jason Ekstrand<br></div></div>