#ifndef __NOUVEAU_STATE_CACHE_H__ #define __NOUVEAU_STATE_CACHE_H__ #include "mtypes.h" #define NOUVEAU_STATE_CACHE_ENTRIES 2048 // size of a dirty requests block // you can play with that and tune the value to increase/decrease performance // but keep it a power of 2 ! #define NOUVEAU_STATE_CACHE_HIER_SIZE 32 typedef struct nouveau_state_atom_t{ uint32_t value; uint32_t dirty; }nouveau_state_atom; typedef struct nouveau_state_cache_t{ nouveau_state_atom atoms[NOUVEAU_STATE_CACHE_ENTRIES]; uint32_t current_pos; // hierarchical dirty flags uint8_t hdirty[NOUVEAU_STATE_CACHE_ENTRIES/NOUVEAU_STATE_CACHE_HIER_SIZE]; // master dirty flag uint8_t dirty; }nouveau_state_cache; #endif