summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/nv40/nv40_context.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/pipe/nv40/nv40_context.h')
-rw-r--r--src/mesa/pipe/nv40/nv40_context.h29
1 files changed, 20 insertions, 9 deletions
diff --git a/src/mesa/pipe/nv40/nv40_context.h b/src/mesa/pipe/nv40/nv40_context.h
index 4aa34847e8..d7c9ee7851 100644
--- a/src/mesa/pipe/nv40/nv40_context.h
+++ b/src/mesa/pipe/nv40/nv40_context.h
@@ -11,7 +11,7 @@
#include "pipe/nouveau/nouveau_gldefs.h"
#define NOUVEAU_PUSH_CONTEXT(ctx) \
- struct nv40_context *ctx = nv40
+ struct nv40_channel_context *ctx = nv40->hw
#include "pipe/nouveau/nouveau_push.h"
#include "pipe/nouveau/nouveau_stateobj.h"
@@ -35,20 +35,34 @@
#define NV40_NEW_FRAGPROG (1 << 10)
#define NV40_NEW_ARRAYS (1 << 11)
-struct nv40_context {
- struct pipe_context pipe;
+struct nv40_channel_context {
struct nouveau_winsys *nvws;
+ unsigned refcount;
- struct draw_context *draw;
+ unsigned chipset;
- int chipset;
+ /* HW graphics objects */
struct nouveau_grobj *curie;
struct nouveau_notifier *sync;
- /* query objects */
+ /* Query object resources */
struct nouveau_notifier *query;
struct nouveau_resource *query_heap;
+ /* Vtxprog resources */
+ struct nouveau_resource *vp_exec_heap;
+ struct nouveau_resource *vp_data_heap;
+};
+
+struct nv40_context {
+ struct pipe_context pipe;
+ struct nouveau_winsys *nvws;
+
+ struct nv40_channel_context *hw;
+ struct draw_context *draw;
+
+ int chipset;
+
uint32_t dirty;
struct nv40_sampler_state *tex_sampler[PIPE_MAX_SAMPLERS];
@@ -69,9 +83,6 @@ struct nv40_context {
struct nouveau_stateobj *so_stipple;
struct {
- struct nouveau_resource *exec_heap;
- struct nouveau_resource *data_heap;
-
struct nv40_vertex_program *active;
struct nv40_vertex_program *current;