st/mesa: don't load state parameters if there are none
authorMarek Olšák <marek.olsak@amd.com>
Thu, 22 Oct 2015 17:46:07 +0000 (19:46 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 23 Oct 2015 22:01:20 +0000 (00:01 +0200)
Out of 7063 shaders from my shader-db:
- 6564 (93%) shaders don't have any state parameters.
- 347 (5%) shaders have 1 state parameter for WPOS lowering.
- The remaining 2% have more state parameters, usually matrices.

Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/state_tracker/st_atom_constbuf.c

index acaa85d9356477ffe30ed2756e91ae44f3026033..20f8b3df99d00e38ccd2c5f29a4baffa386f4dc5 100644 (file)
@@ -73,7 +73,8 @@ void st_upload_constants( struct st_context *st,
        * the parameters list are explicitly set by the user with glUniform,
        * glProgramParameter(), etc.
        */
-      _mesa_load_state_parameters(st->ctx, params);
+      if (params->StateFlags)
+         _mesa_load_state_parameters(st->ctx, params);
 
       /* We always need to get a new buffer, to keep the drivers simple and
        * avoid gratuitous rendering synchronization.