summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/virgl/virgl_hw.h
diff options
context:
space:
mode:
authorStéphane Marchesin <[email protected]>2018-02-09 17:21:59 -0800
committerDave Airlie <[email protected]>2018-02-13 14:23:54 +1000
commit5e4a2b394eb03d5b49df8d3f2263c65b24ad2bb9 (patch)
tree0c873e0cd3f25592a749c62f9a07fe0266b1ebdd /src/gallium/drivers/virgl/virgl_hw.h
parent10457712edb744d358c4b7c891fdaa1a6c136046 (diff)
virgl: Support v2 caps struct (v2)
This struct allows us to report: - accurate max point size/line width. - accurate texel and texture gather offsets - vertex/geometry limits. Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/virgl/virgl_hw.h')
-rw-r--r--src/gallium/drivers/virgl/virgl_hw.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gallium/drivers/virgl/virgl_hw.h b/src/gallium/drivers/virgl/virgl_hw.h
index e3c56db2ac6..833ab91eee7 100644
--- a/src/gallium/drivers/virgl/virgl_hw.h
+++ b/src/gallium/drivers/virgl/virgl_hw.h
@@ -232,6 +232,11 @@ struct virgl_caps_bool_set1 {
unsigned poly_stipple:1; /* not in GL 3.1 core profile */
unsigned mirror_clamp:1;
unsigned texture_query_lod:1;
+ unsigned has_fp64:1;
+ unsigned has_tessellation_shaders:1;
+ unsigned has_indirect_draw:1;
+ unsigned has_sample_shading:1;
+ unsigned has_cull:1;
};
/* endless expansion capabilites - current gallium has 252 formats */
@@ -259,9 +264,32 @@ struct virgl_caps_v1 {
uint32_t max_texture_gather_components;
};
+struct virgl_caps_v2 {
+ struct virgl_caps_v1 v1;
+ float min_aliased_point_size;
+ float max_aliased_point_size;
+ float min_smooth_point_size;
+ float max_smooth_point_size;
+ float min_aliased_line_width;
+ float max_aliased_line_width;
+ float min_smooth_line_width;
+ float max_smooth_line_width;
+ float max_texture_lod_bias;
+ uint32_t max_geom_output_vertices;
+ uint32_t max_geom_total_output_components;
+ uint32_t max_vertex_outputs;
+ uint32_t max_vertex_attribs;
+ uint32_t max_shader_patch_varyings;
+ int32_t min_texel_offset;
+ int32_t max_texel_offset;
+ int32_t min_texture_gather_offset;
+ int32_t max_texture_gather_offset;
+};
+
union virgl_caps {
uint32_t max_version;
struct virgl_caps_v1 v1;
+ struct virgl_caps_v2 v2;
};
enum virgl_errors {