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
