1bf215546Sopenharmony_ci#ifndef __NV30_SCREEN_H__
2bf215546Sopenharmony_ci#define __NV30_SCREEN_H__
3bf215546Sopenharmony_ci
4bf215546Sopenharmony_ci#include <stdio.h>
5bf215546Sopenharmony_ci
6bf215546Sopenharmony_ci#include "util/list.h"
7bf215546Sopenharmony_ci
8bf215546Sopenharmony_ci#include "nouveau_debug.h"
9bf215546Sopenharmony_ci#include "nouveau_screen.h"
10bf215546Sopenharmony_ci#include "nouveau_fence.h"
11bf215546Sopenharmony_ci#include "nouveau_heap.h"
12bf215546Sopenharmony_ci#include "nv30/nv30_winsys.h"
13bf215546Sopenharmony_ci#include "nv30/nv30_resource.h"
14bf215546Sopenharmony_ci#include "compiler/nir/nir.h"
15bf215546Sopenharmony_ci
16bf215546Sopenharmony_cistruct nv30_context;
17bf215546Sopenharmony_ci
18bf215546Sopenharmony_cistruct nv30_screen {
19bf215546Sopenharmony_ci   struct nouveau_screen base;
20bf215546Sopenharmony_ci
21bf215546Sopenharmony_ci   struct nv30_context *cur_ctx;
22bf215546Sopenharmony_ci
23bf215546Sopenharmony_ci   struct nouveau_bo *notify;
24bf215546Sopenharmony_ci
25bf215546Sopenharmony_ci   struct nouveau_object *ntfy;
26bf215546Sopenharmony_ci   struct nouveau_object *fence;
27bf215546Sopenharmony_ci
28bf215546Sopenharmony_ci   struct nouveau_object *query;
29bf215546Sopenharmony_ci   struct nouveau_heap *query_heap;
30bf215546Sopenharmony_ci   struct list_head queries;
31bf215546Sopenharmony_ci
32bf215546Sopenharmony_ci   struct nouveau_object *null;
33bf215546Sopenharmony_ci   struct nouveau_object *eng3d;
34bf215546Sopenharmony_ci   struct nouveau_object *m2mf;
35bf215546Sopenharmony_ci   struct nouveau_object *surf2d;
36bf215546Sopenharmony_ci   struct nouveau_object *swzsurf;
37bf215546Sopenharmony_ci   struct nouveau_object *sifm;
38bf215546Sopenharmony_ci
39bf215546Sopenharmony_ci   /*XXX: nvfx state */
40bf215546Sopenharmony_ci   struct nouveau_heap *vp_exec_heap;
41bf215546Sopenharmony_ci   struct nouveau_heap *vp_data_heap;
42bf215546Sopenharmony_ci
43bf215546Sopenharmony_ci   nir_shader_compiler_options fs_compiler_options;
44bf215546Sopenharmony_ci
45bf215546Sopenharmony_ci   unsigned max_sample_count;
46bf215546Sopenharmony_ci};
47bf215546Sopenharmony_ci
48bf215546Sopenharmony_cistatic inline struct nv30_screen *
49bf215546Sopenharmony_cinv30_screen(struct pipe_screen *pscreen)
50bf215546Sopenharmony_ci{
51bf215546Sopenharmony_ci   return (struct nv30_screen *)pscreen;
52bf215546Sopenharmony_ci}
53bf215546Sopenharmony_ci
54bf215546Sopenharmony_ci#endif
55