1 #include "dri_query_renderer.h"
3 #include "util/u_inlines.h"
4 #include "state_tracker/drm_driver.h"
7 #include "dri_screen.h"
8 #include "dri_query_renderer.h"
11 dri2_query_renderer_integer(__DRIscreen
*_screen
, int param
,
14 struct dri_screen
*screen
= dri_screen(_screen
);
17 case __DRI2_RENDERER_VENDOR_ID
:
19 (unsigned int)screen
->base
.screen
->get_param(screen
->base
.screen
,
22 case __DRI2_RENDERER_DEVICE_ID
:
24 (unsigned int)screen
->base
.screen
->get_param(screen
->base
.screen
,
27 case __DRI2_RENDERER_ACCELERATED
:
29 (unsigned int)screen
->base
.screen
->get_param(screen
->base
.screen
,
30 PIPE_CAP_ACCELERATED
);
33 case __DRI2_RENDERER_VIDEO_MEMORY
:
35 (unsigned int)screen
->base
.screen
->get_param(screen
->base
.screen
,
36 PIPE_CAP_VIDEO_MEMORY
);
39 case __DRI2_RENDERER_UNIFIED_MEMORY_ARCHITECTURE
:
41 (unsigned int)screen
->base
.screen
->get_param(screen
->base
.screen
,
45 case __DRI2_RENDERER_HAS_TEXTURE_3D
:
47 screen
->base
.screen
->get_param(screen
->base
.screen
,
48 PIPE_CAP_MAX_TEXTURE_3D_LEVELS
) != 0;
51 case __DRI2_RENDERER_HAS_FRAMEBUFFER_SRGB
:
53 screen
->base
.screen
->is_format_supported(screen
->base
.screen
,
54 PIPE_FORMAT_B8G8R8A8_SRGB
,
56 PIPE_BIND_RENDER_TARGET
);
60 return driQueryRendererIntegerCommon(_screen
, param
, value
);
65 dri2_query_renderer_string(__DRIscreen
*_screen
, int param
,
68 struct dri_screen
*screen
= dri_screen(_screen
);
71 case __DRI2_RENDERER_VENDOR_ID
:
72 value
[0] = screen
->base
.screen
->get_vendor(screen
->base
.screen
);
74 case __DRI2_RENDERER_DEVICE_ID
:
75 value
[0] = screen
->base
.screen
->get_name(screen
->base
.screen
);
82 const __DRI2rendererQueryExtension dri2RendererQueryExtension
= {
83 .base
= { __DRI2_RENDERER_QUERY
, 1 },
85 .queryInteger
= dri2_query_renderer_integer
,
86 .queryString
= dri2_query_renderer_string