I just merged a private feature branch to master: const-buffer-changes

Here's the run-down:

1. The i965 driver was using the GRF register file to store constants 
in addition to all the usual temps.  We could quickly exhause the GRF 
if the shader was large or used many constants.  Now, we use a 
separate constant buffer surface when everything doesn't fit in the 
GRF.  "Small" shaders should work just as before while larger shaders 
should actually work properly now.

2. There's a new _NEW_PROGRAM_CONSTANTS state flag that's set when 
shader constants/uniforms change.  Before _NEW_PROGRAM was used for 
that, plus signaling new shader code, etc.  With the new flag there's 
finer control of state validation for shader code vs. shader data.

I've updated all the drivers with the new flag in a safe but 
inefficient way: wherever we check for _NEW_PROGRAM we also check for 
_NEW_PROGRAM_CONSTANTS.  The former flag could be removed in a few 
places in some drivers (R300/500 drivers, i915) after testing.  No 
hurry on that though.

-Brian


------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to