blob: e2b7cb888e0766f2bb0aa12946cb26277afa88fb [file] [log] [blame]
Courtney Goeltzenleuchtere099abd2014-08-12 14:09:50 -06001#ifndef XGLGPU_H
2#define XGLGPU_H
3
4#include "test_common.h"
5
6#include <xgl.h>
7
8#define MAX_GPUS 8
9
10#define MAX_QUEUE_TYPES 5
11
12class XglGpu
13{
14public:
15 XglGpu(XGL_UINT id, XGL_PHYSICAL_GPU gpuObj);
16 void init_gpu();
17 void init_extensions();
Courtney Goeltzenleuchtere099abd2014-08-12 14:09:50 -060018 void init_formats();
19
Courtney Goeltzenleuchtered56abc2014-08-12 14:12:22 -060020 // Do we want to hide/abstract this data?
21// private:
Courtney Goeltzenleuchtere099abd2014-08-12 14:09:50 -060022 XGL_UINT id;
23 XGL_PHYSICAL_GPU gpuObj;
24
25 XGL_PHYSICAL_GPU_PROPERTIES props;
26 XGL_PHYSICAL_GPU_PERFORMANCE perf;
27
28 XGL_UINT queue_count;
29 XGL_PHYSICAL_GPU_QUEUE_PROPERTIES *queue_props;
30 XGL_DEVICE_QUEUE_CREATE_INFO *queue_reqs;
31
32 XGL_PHYSICAL_GPU_MEMORY_PROPERTIES memory_props;
33
34 XGL_UINT extension_count;
35 const XGL_CHAR **extensions;
36
Courtney Goeltzenleuchterb85c5812014-08-19 18:35:50 -060037 XGL_QUEUE m_queue;
Courtney Goeltzenleuchtere099abd2014-08-12 14:09:50 -060038
39 XGL_UINT heap_count;
40 XGL_MEMORY_HEAP_PROPERTIES *heap_props;
41 XGL_QUEUE queues[MAX_QUEUE_TYPES];
42
43 XGL_FORMAT_PROPERTIES format_props[XGL_MAX_CH_FMT][XGL_MAX_NUM_FMT];
44
45};
46
47#endif // XGLGPU_H