• Charmaine Lee's avatar
    svga: eliminiate unnecessary constant buffer updates · c4cb879f
    Charmaine Lee authored
    Currently if the texture binding is changed, emit_fs_consts()
    is triggered to update texture scaling factor for
    rectangle texture or texture buffer size in the constant buffer.
    But the update is only relevant if the texture binding includes
    a rectangle texture or a texture buffer.
    
    To eliminate the unnecessary constant buffer updates due to other texture
    binding changes, a new flag SVGA_NEW_TEXTURE_CONSTS will be used
    to trigger fragment shader constant buffer update when a rectangle texture
    or a texture buffer is bound.
    
    With this patch, the number of constant buffer updates in Lightsmark2008
    reduces from hundreds per frame to about 28 per frame.
    Reviewed-by: Brian Paul's avatarBrian Paul <brianp@vmware.com>
    c4cb879f
svga_state_constants.c 25.8 KB