[Mesa-dev] [PATCH 02/14] i965: Allocate binding table space for shader images.

Francisco Jerez currojerez at riseup.net
Mon Feb 9 08:53:28 PST 2015


Kenneth Graunke <kenneth at whitecape.org> writes:

> On Saturday, February 07, 2015 03:03:44 AM Francisco Jerez wrote:
>> Kenneth Graunke <kenneth at whitecape.org> writes:
>> 
>> > On Friday, February 06, 2015 07:23:16 PM Francisco Jerez wrote:
>> >> Reviewed-by: Paul Berry <stereotype441 at gmail.com>
>> >> ---
>> >>  src/mesa/drivers/dri/i965/brw_context.h  | 5 +++++
>> >>  src/mesa/drivers/dri/i965/brw_shader.cpp | 7 +++++++
>> >>  2 files changed, 12 insertions(+)
>> >> 
>> >> diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
>> >> index bebb0be..e28c65d 100644
>> >> --- a/src/mesa/drivers/dri/i965/brw_context.h
>> >> +++ b/src/mesa/drivers/dri/i965/brw_context.h
>> >> @@ -341,6 +341,7 @@ struct brw_stage_prog_data {
>> >>        uint32_t gather_texture_start;
>> >>        uint32_t ubo_start;
>> >>        uint32_t abo_start;
>> >> +      uint32_t image_start;
>> >>        uint32_t shader_time_start;
>> >>        /** @} */
>> >>     } binding_table;
>> >> @@ -621,6 +622,9 @@ struct brw_vs_prog_data {
>> >>  /** Max number of atomic counter buffer objects in a shader */
>> >>  #define BRW_MAX_ABO 16
>> >>  
>> >> +/** Max number of image units in a shader */
>> >> +#define BRW_MAX_IMAGES 16
>> >> +
>> >
>> > Out of curiosity, why 16?  The Windows driver and Nvidia both seem to
>> > use 8, while AMD offers 32:
>> >
>> > http://delphigl.de/glcapsviewer/gl_stats_caps_single.php?listreportsbycap=GL_MAX_IMAGE_UNITS
>> >
>> > We have 32 texture units on Haswell these days (though honestly, it's
>> > pretty arbitrary...we could have more if we wanted...)
>> >
>> > That's not an objection - I'm just curious.  As is,
>> > Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
>> >
>> It's completely arbitrary too, IIRC I set it to 16 because back when I
>> wrote this patch we were still exposing 16 texture units, so I just used
>> the same value.  We could definitely expose 32 image units too, should I
>> just increase the value to 32 locally?
>
> That seems like a good idea to me, unless you can think of some reason
> not to.  I'll leave it up to you :)

Cool, I've increased BRW_MAX_IMAGES to 32 locally.  The core mesa patch
I just sent will also be required so the GL context and shader objects
have enough state entries to keep track of all these image units. :)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150209/8f928224/attachment.sig>


More information about the mesa-dev mailing list