[Bug 43000] huge performance regression in ut2004 since 7.11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugs.freedesktop.org/show_bug.cgi?id=43000

--- Comment #3 from Ian Romanick <idr@xxxxxxxxxxxxxxx> 2011-11-16 14:25:23 PST ---
If this was a recent change, I'll guess that it will bisect to my changes to
the way uniforms are handled.  I pushed a patch today that may restore previous
performance:

commit 010dc29283cfc7791a29ba8a0570d8f7f9edef05
Author: Ian Romanick <ian.d.romanick@xxxxxxxxx>
Date:   Thu Nov 10 12:32:35 2011 -0800

    mesa: Only update sampler uniforms that are used by the shader stage

    Previously a vertex shader that used no samplers would get updated (by
    calling the driver's ProgramStringNotify) when a sampler in the
    fragment shader was updated.  This was discovered while investigating
    some spurious code generation for shaders in Cogs.  The behavior in
    Cogs is especially pessimal because it ping-pongs sampler uniform
    settings:

        glUniform1i(sampler1, 0);
        glUniform1i(sampler2, 1);
        draw();
        glUniform1i(sampler1, 1);
        glUniform1i(sampler2, 0);
        draw();
        glUniform1i(sampler1, 0);
        glUniform1i(sampler2, 1);
        draw();
        // etc.

    ProgramStringNotify is still too big of a hammer.  Applications like
    Cogs will still defeat the shader cache.  A lighter-weight mechanism
    that can work with the shader cache is needed.  However, this patch at
    least restores the previous behavior.

    Signed-off-by: Ian Romanick <ian.d.romanick@xxxxxxxxx>
    Reviewed-by: Kenneth Graunke <kenneth@xxxxxxxxxxxxx>

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux