1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef __NV30_SCREEN_H__ 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define __NV30_SCREEN_H__ 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include <stdio.h> 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define NOUVEAU_ERR(fmt, args...) \ 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fprintf(stderr, "%s:%d - "fmt, __FUNCTION__, __LINE__, ##args); 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "util/u_double_list.h" 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "nouveau/nouveau_screen.h" 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "nouveau/nouveau_fence.h" 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "nouveau/nouveau_heap.h" 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "nv30_winsys.h" 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "nv30_resource.h" 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct nv30_context; 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct nv30_screen { 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_screen base; 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nv30_context *cur_ctx; 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_bo *notify; 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_object *ntfy; 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_object *fence; 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_object *query; 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_heap *query_heap; 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct list_head queries; 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_object *null; 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_object *eng3d; 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_object *m2mf; 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_object *surf2d; 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_object *swzsurf; 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_object *sifm; 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /*XXX: nvfx state */ 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_heap *vp_exec_heap; 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct nouveau_heap *vp_data_heap; 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic INLINE struct nv30_screen * 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgnv30_screen(struct pipe_screen *pscreen) 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return (struct nv30_screen *)pscreen; 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif 52