History

Merge tag 'vmwgfx-next-4.19-3' of git://people.freedesktop.org/~thomash/linux into drm-next

This introduces a header update and support for multisample surfaces.

Dave Airlie committed 8 years ago

Commit b8616862 parents 8038d2a 9b07b2816 files · +2032 −969Browse files

Showing the changes to include/uapi (1 of 16 files). Show all

Unified · Split

include/uapi/drm/vmwgfx_drm.h+107−0
@@ -69,6 +69,8 @@ extern "C" { · 68 unmodified lines
6969 #define DRM_VMW_GB_SURFACE_REF 24
7070 #define DRM_VMW_SYNCCPU 25
7171 #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26
72+#define DRM_VMW_GB_SURFACE_CREATE_EXT 27
73+#define DRM_VMW_GB_SURFACE_REF_EXT 28
7274
7375 /*************************************************************************/
7476 /**
@@ -80,6 +82,9 @@ extern "C" { · 5 unmodified lines
8082 *
8183 * DRM_VMW_PARAM_OVERLAY_IOCTL:
8284 * Does the driver support the overlay ioctl.
85+ *
86+ * DRM_VMW_PARAM_SM4_1
87+ * SM4_1 support is enabled.
8388 */
8489
8590 #define DRM_VMW_PARAM_NUM_STREAMS 0
@@ -95,6 +100,8 @@ extern "C" { · 9 unmodified lines
95100 #define DRM_VMW_PARAM_MAX_MOB_SIZE 10
96101 #define DRM_VMW_PARAM_SCREEN_TARGET 11
97102 #define DRM_VMW_PARAM_DX 12
103+#define DRM_VMW_PARAM_HW_CAPS2 13
104+#define DRM_VMW_PARAM_SM4_1 14
98105
99106 /**
100107 * enum drm_vmw_handle_type - handle type for ref ioctls
@@ -1104,6 +1111,106 @@ struct drm_vmw_handle_close_arg { · 1003 unmodified lines
11041111 };
11051112 #define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg
11061113
1114+/*************************************************************************/
1115+/**
1116+ * DRM_VMW_GB_SURFACE_CREATE_EXT - Create a host guest-backed surface.
1117+ *
1118+ * Allocates a surface handle and queues a create surface command
1119+ * for the host on the first use of the surface. The surface ID can
1120+ * be used as the surface ID in commands referencing the surface.
1121+ *
1122+ * This new command extends DRM_VMW_GB_SURFACE_CREATE by adding version
1123+ * parameter and 64 bit svga flag.
1124+ */
1125+
1126+/**
1127+ * enum drm_vmw_surface_version
1128+ *
1129+ * @drm_vmw_surface_gb_v1: Corresponds to current gb surface format with
1130+ * svga3d surface flags split into 2, upper half and lower half.
1131+ */
1132+enum drm_vmw_surface_version {
1133+ drm_vmw_gb_surface_v1
1134+};
1135+
1136+/**
1137+ * struct drm_vmw_gb_surface_create_ext_req
1138+ *
1139+ * @base: Surface create parameters.
1140+ * @version: Version of surface create ioctl.
1141+ * @svga3d_flags_upper_32_bits: Upper 32 bits of svga3d flags.
1142+ * @multisample_pattern: Multisampling pattern when msaa is supported.
1143+ * @quality_level: Precision settings for each sample.
1144+ * @must_be_zero: Reserved for future usage.
1145+ *
1146+ * Input argument to the DRM_VMW_GB_SURFACE_CREATE_EXT Ioctl.
1147+ * Part of output argument for the DRM_VMW_GB_SURFACE_REF_EXT Ioctl.
1148+ */
1149+struct drm_vmw_gb_surface_create_ext_req {
1150+ struct drm_vmw_gb_surface_create_req base;
1151+ enum drm_vmw_surface_version version;
1152+ uint32_t svga3d_flags_upper_32_bits;
1153+ SVGA3dMSPattern multisample_pattern;
1154+ SVGA3dMSQualityLevel quality_level;
1155+ uint64_t must_be_zero;
1156+};
1157+
1158+/**
1159+ * union drm_vmw_gb_surface_create_ext_arg
1160+ *
1161+ * @req: Input argument as described above.
1162+ * @rep: Output argument as described above.
1163+ *
1164+ * Argument to the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl.
1165+ */
1166+union drm_vmw_gb_surface_create_ext_arg {
1167+ struct drm_vmw_gb_surface_create_rep rep;
1168+ struct drm_vmw_gb_surface_create_ext_req req;
1169+};
1170+
1171+/*************************************************************************/
1172+/**
1173+ * DRM_VMW_GB_SURFACE_REF_EXT - Reference a host surface.
1174+ *
1175+ * Puts a reference on a host surface with a given handle, as previously
1176+ * returned by the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl.
1177+ * A reference will make sure the surface isn't destroyed while we hold
1178+ * it and will allow the calling client to use the surface handle in
1179+ * the command stream.
1180+ *
1181+ * On successful return, the Ioctl returns the surface information given
1182+ * to and returned from the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl.
1183+ */
1184+
1185+/**
1186+ * struct drm_vmw_gb_surface_ref_ext_rep
1187+ *
1188+ * @creq: The data used as input when the surface was created, as described
1189+ * above at "struct drm_vmw_gb_surface_create_ext_req"
1190+ * @crep: Additional data output when the surface was created, as described
1191+ * above at "struct drm_vmw_gb_surface_create_rep"
1192+ *
1193+ * Output Argument to the DRM_VMW_GB_SURFACE_REF_EXT ioctl.
1194+ */
1195+struct drm_vmw_gb_surface_ref_ext_rep {
1196+ struct drm_vmw_gb_surface_create_ext_req creq;
1197+ struct drm_vmw_gb_surface_create_rep crep;
1198+};
1199+
1200+/**
1201+ * union drm_vmw_gb_surface_reference_ext_arg
1202+ *
1203+ * @req: Input data as described above at "struct drm_vmw_surface_arg"
1204+ * @rep: Output data as described above at
1205+ * "struct drm_vmw_gb_surface_ref_ext_rep"
1206+ *
1207+ * Argument to the DRM_VMW_GB_SURFACE_REF Ioctl.
1208+ */
1209+union drm_vmw_gb_surface_reference_ext_arg {
1210+ struct drm_vmw_gb_surface_ref_ext_rep rep;
1211+ struct drm_vmw_surface_arg req;
1212+};
1213+
11071214 #if defined(__cplusplus)
11081215 }
11091216 #endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t