st/dri: expose sRGB visuals (v2)
[mesa.git] / src / gallium / state_trackers / dri / dri_query_renderer.c
1 #include "dri_query_renderer.h"
2
3 #include "util/u_inlines.h"
4 #include "state_tracker/drm_driver.h"
5
6 #include "utils.h"
7 #include "dri_screen.h"
8 #include "dri_query_renderer.h"
9
10 static int
11 dri2_query_renderer_integer(__DRIscreen *_screen, int param,
12 unsigned int *value)
13 {
14 struct dri_screen *screen = dri_screen(_screen);
15
16 switch (param) {
17 case __DRI2_RENDERER_VENDOR_ID:
18 value[0] =
19 (unsigned int)screen->base.screen->get_param(screen->base.screen,
20 PIPE_CAP_VENDOR_ID);
21 return 0;
22 case __DRI2_RENDERER_DEVICE_ID:
23 value[0] =
24 (unsigned int)screen->base.screen->get_param(screen->base.screen,
25 PIPE_CAP_DEVICE_ID);
26 return 0;
27 case __DRI2_RENDERER_ACCELERATED:
28 value[0] =
29 (unsigned int)screen->base.screen->get_param(screen->base.screen,
30 PIPE_CAP_ACCELERATED);
31 return 0;
32
33 case __DRI2_RENDERER_VIDEO_MEMORY:
34 value[0] =
35 (unsigned int)screen->base.screen->get_param(screen->base.screen,
36 PIPE_CAP_VIDEO_MEMORY);
37 return 0;
38
39 case __DRI2_RENDERER_UNIFIED_MEMORY_ARCHITECTURE:
40 value[0] =
41 (unsigned int)screen->base.screen->get_param(screen->base.screen,
42 PIPE_CAP_UMA);
43 return 0;
44
45 default:
46 return driQueryRendererIntegerCommon(_screen, param, value);
47 }
48 }
49
50 static int
51 dri2_query_renderer_string(__DRIscreen *_screen, int param,
52 const char **value)
53 {
54 struct dri_screen *screen = dri_screen(_screen);
55
56 switch (param) {
57 case __DRI2_RENDERER_VENDOR_ID:
58 value[0] = screen->base.screen->get_vendor(screen->base.screen);
59 return 0;
60 case __DRI2_RENDERER_DEVICE_ID:
61 value[0] = screen->base.screen->get_name(screen->base.screen);
62 return 0;
63 default:
64 return -1;
65 }
66 }
67
68 const __DRI2rendererQueryExtension dri2RendererQueryExtension = {
69 .base = { __DRI2_RENDERER_QUERY, 1 },
70
71 .queryInteger = dri2_query_renderer_integer,
72 .queryString = dri2_query_renderer_string
73 };