/**
* 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
* searches.
} 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.
*/
struct gl_driver_flags
{
/** gl_context::Array::_DrawArrays (vertex array state) */
- GLbitfield NewArray;
+ uint64_t NewArray;
/** gl_context::TransformFeedback::CurrentObject */
- GLbitfield NewTransformFeedback;
+ uint64_t NewTransformFeedback;
/** gl_context::TransformFeedback::CurrentObject::shader_program */
- GLbitfield NewTransformFeedbackProg;
+ uint64_t NewTransformFeedbackProg;
/** gl_context::RasterDiscard */
- GLbitfield NewRasterizerDiscard;
+ uint64_t NewRasterizerDiscard;
/**
* gl_context::UniformBufferBindings
* gl_shader_program::UniformBlocks
*/
- GLbitfield NewUniformBuffer;
+ uint64_t NewUniformBuffer;
/**
* gl_context::AtomicBufferBindings
*/
- GLbitfield NewAtomicBuffer;
+ uint64_t NewAtomicBuffer;
/**
* gl_context::ImageUnits
*/
- GLbitfield NewImageUnits;
+ uint64_t NewImageUnits;
};
struct gl_uniform_buffer_binding
GLenum RenderMode; /**< either GL_RENDER, GL_SELECT, GL_FEEDBACK */
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;