mesa: Convert NewDriverState to 64-bits

i965 will have more than 32 bits when BRW_STATE_COMPUTE_PROGRAM is added.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Jordan Justen 2014-08-06 22:32:03 -07:00
parent 8e27a4d2b3
commit d035d50e05
6 changed files with 25 additions and 13 deletions

View file

@ -273,7 +273,7 @@ retry:
/* We've smashed all state compared to what the normal 3D pipeline /* We've smashed all state compared to what the normal 3D pipeline
* rendering tracks for GL. * rendering tracks for GL.
*/ */
SET_DIRTY_ALL(brw); SET_DIRTY64_ALL(brw);
SET_DIRTY_ALL(cache); SET_DIRTY_ALL(cache);
brw->no_depth_or_stencil = false; brw->no_depth_or_stencil = false;
brw->ib.type = -1; brw->ib.type = -1;

View file

@ -229,7 +229,7 @@ struct brw_state_flags {
/** /**
* State update flags signalled as the result of brw_tracked_state updates * State update flags signalled as the result of brw_tracked_state updates
*/ */
GLuint brw; uint64_t brw;
/** /**
* State update flags that used to be signalled by brw_state_cache.c * State update flags that used to be signalled by brw_state_cache.c
* searches. * searches.
@ -282,6 +282,18 @@ typedef enum {
} while (false) } while (false)
/**
* Set all of the bits in a field of brw_state_flags.
*/
#define SET_DIRTY64_ALL(FIELD) \
do { \
/* ~0ULL == 0xffffffffffffffff, so make sure field is <= 64 bits */ \
STATIC_ASSERT(sizeof(brw->state.pipeline_dirty[0].FIELD) == 8); \
for (int pipeline = 0; pipeline < BRW_NUM_PIPELINES; pipeline++) \
brw->state.pipeline_dirty[pipeline].FIELD = ~(0ULL); \
} while (false)
/** /**
* Check one of the bits in a field of brw_state_flags. * Check one of the bits in a field of brw_state_flags.
*/ */

View file

@ -380,7 +380,7 @@ brw_clear_cache(struct brw_context *brw, struct brw_cache *cache)
* any offsets leftover in brw_context will no longer be valid. * any offsets leftover in brw_context will no longer be valid.
*/ */
SET_DIRTY_ALL(mesa); SET_DIRTY_ALL(mesa);
SET_DIRTY_ALL(brw); SET_DIRTY64_ALL(brw);
SET_DIRTY_ALL(cache); SET_DIRTY_ALL(cache);
intel_batchbuffer_flush(brw); intel_batchbuffer_flush(brw);
} }

View file

@ -391,7 +391,7 @@ void brw_init_state( struct brw_context *brw )
brw_upload_initial_gpu_state(brw); brw_upload_initial_gpu_state(brw);
SET_DIRTY_ALL(mesa); SET_DIRTY_ALL(mesa);
SET_DIRTY_ALL(brw); SET_DIRTY64_ALL(brw);
/* Make sure that brw->state.dirty.brw has enough bits to hold all possible /* Make sure that brw->state.dirty.brw has enough bits to hold all possible
* dirty flags. * dirty flags.

View file

@ -3908,32 +3908,32 @@ typedef enum
struct gl_driver_flags struct gl_driver_flags
{ {
/** gl_context::Array::_DrawArrays (vertex array state) */ /** gl_context::Array::_DrawArrays (vertex array state) */
GLbitfield NewArray; uint64_t NewArray;
/** gl_context::TransformFeedback::CurrentObject */ /** gl_context::TransformFeedback::CurrentObject */
GLbitfield NewTransformFeedback; uint64_t NewTransformFeedback;
/** gl_context::TransformFeedback::CurrentObject::shader_program */ /** gl_context::TransformFeedback::CurrentObject::shader_program */
GLbitfield NewTransformFeedbackProg; uint64_t NewTransformFeedbackProg;
/** gl_context::RasterDiscard */ /** gl_context::RasterDiscard */
GLbitfield NewRasterizerDiscard; uint64_t NewRasterizerDiscard;
/** /**
* gl_context::UniformBufferBindings * gl_context::UniformBufferBindings
* gl_shader_program::UniformBlocks * gl_shader_program::UniformBlocks
*/ */
GLbitfield NewUniformBuffer; uint64_t NewUniformBuffer;
/** /**
* gl_context::AtomicBufferBindings * gl_context::AtomicBufferBindings
*/ */
GLbitfield NewAtomicBuffer; uint64_t NewAtomicBuffer;
/** /**
* gl_context::ImageUnits * gl_context::ImageUnits
*/ */
GLbitfield NewImageUnits; uint64_t NewImageUnits;
}; };
struct gl_uniform_buffer_binding struct gl_uniform_buffer_binding
@ -4240,7 +4240,7 @@ struct gl_context
GLenum RenderMode; /**< either GL_RENDER, GL_SELECT, GL_FEEDBACK */ GLenum RenderMode; /**< either GL_RENDER, GL_SELECT, GL_FEEDBACK */
GLbitfield NewState; /**< bitwise-or of _NEW_* flags */ GLbitfield NewState; /**< bitwise-or of _NEW_* flags */
GLbitfield NewDriverState;/**< bitwise-or of flags from DriverFlags */ uint64_t NewDriverState; /**< bitwise-or of flags from DriverFlags */
struct gl_driver_flags DriverFlags; struct gl_driver_flags DriverFlags;

View file

@ -56,7 +56,7 @@ struct u_upload_mgr;
struct st_state_flags { struct st_state_flags {
GLuint mesa; GLuint mesa;
GLuint st; uint64_t st;
}; };
struct st_tracked_state { struct st_tracked_state {