summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/nouveau/nouveau_state_cache.h
blob: 5f9d426450bbfc692c35faebfe177596c04cd513 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

#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