[Mesa-dev] [PATCH 2/2] i965: use L3 data cache for SSBOs

Jason Ekstrand jason at jlekstrand.net
Wed Oct 5 16:24:18 UTC 2016


On Wed, Oct 5, 2016 at 9:15 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:

> On Mon, Sep 26, 2016 at 10:31 AM, Lionel Landwerlin
> <llandwerlin at gmail.com> wrote:
> > Anv programs the hardware to use L3 data cache if we use either SSBOs or
> > images in the shaders, we can program i965 the same way.
> >
> > gl_shader_program has a bit of a confusing named field with
> > 'NumAtomicBuffers'. It doesn't tell how many buffers are accessed by the
> > shader in an atomic way but instead the number of atomic counters
> > manipulated by the shader.
>
> It's likely that at least some shaders use SSBO's without atomic
> operations. If you only need the data cache for atomics, it should be
> fairly easy to determine if any atomic ops are performed or not. (Same
> for images.)
>

I think we want the data cache regardless of whether or not we're doing
atomics


> If you do need it for all SSBO's whether atomic or not, I'm not sure I
> understand the significance of the quoted paragraph.
>

I don't either.


> [And in either case, it's the number of atomic buffers, not counters -
> you can have multiple counters in a single buffer.]
>
> >
> > Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> > Cc: Jason Ekstrand <jason at jlekstrand.net>
> > ---
> >  src/mesa/drivers/dri/i965/gen7_l3_state.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/mesa/drivers/dri/i965/gen7_l3_state.c
> b/src/mesa/drivers/dri/i965/gen7_l3_state.c
> > index 92e8788..fdaea81 100644
> > --- a/src/mesa/drivers/dri/i965/gen7_l3_state.c
> > +++ b/src/mesa/drivers/dri/i965/gen7_l3_state.c
> > @@ -55,7 +55,8 @@ get_pipeline_state_l3_weights(const struct
> brw_context *brw)
> >           prog ? prog->_LinkedShaders[stage_states[i]->stage] : NULL;
> >        const struct brw_stage_prog_data *prog_data =
> stage_states[i]->prog_data;
> >
> > -      needs_dc |= (prog && prog->NumAtomicBuffers) ||
> > +      needs_dc |= (prog && (prog->NumAtomicBuffers ||
> > +                            prog->NumShaderStorageBlocks)) ||
> >           (shader && shader->NumImages) ||
> >           (prog_data && prog_data->total_scratch);
> >        needs_slm |= prog_data && prog_data->total_shared;
> > --
> > 2.9.3
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161005/d212d8a0/attachment.html>


More information about the mesa-dev mailing list