This introduces a header update and support for multisample surfaces.
Showing the changes to include/uapi (1 of 16 files). Show all
Unified · Split
| @@ -69,6 +69,8 @@ extern "C" { · 68 unmodified lines | |||
| 69 | #define DRM_VMW_GB_SURFACE_REF 24 | 69 | #define DRM_VMW_GB_SURFACE_REF 24 |
| 70 | #define DRM_VMW_SYNCCPU 25 | 70 | #define DRM_VMW_SYNCCPU 25 |
| 71 | #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26 | 71 | #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 | ||
| 72 | 74 | ||
| 73 | /*************************************************************************/ | 75 | /*************************************************************************/ |
| 74 | /** | 76 | /** |
| @@ -80,6 +82,9 @@ extern "C" { · 5 unmodified lines | |||
| 80 | * | 82 | * |
| 81 | * DRM_VMW_PARAM_OVERLAY_IOCTL: | 83 | * DRM_VMW_PARAM_OVERLAY_IOCTL: |
| 82 | * Does the driver support the overlay ioctl. | 84 | * Does the driver support the overlay ioctl. |
| 85 | * | ||
| 86 | * DRM_VMW_PARAM_SM4_1 | ||
| 87 | * SM4_1 support is enabled. | ||
| 83 | */ | 88 | */ |
| 84 | 89 | ||
| 85 | #define DRM_VMW_PARAM_NUM_STREAMS 0 | 90 | #define DRM_VMW_PARAM_NUM_STREAMS 0 |
| @@ -95,6 +100,8 @@ extern "C" { · 9 unmodified lines | |||
| 95 | #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 | 100 | #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 |
| 96 | #define DRM_VMW_PARAM_SCREEN_TARGET 11 | 101 | #define DRM_VMW_PARAM_SCREEN_TARGET 11 |
| 97 | #define DRM_VMW_PARAM_DX 12 | 102 | #define DRM_VMW_PARAM_DX 12 |
| 103 | #define DRM_VMW_PARAM_HW_CAPS2 13 | ||
| 104 | #define DRM_VMW_PARAM_SM4_1 14 | ||
| 98 | 105 | ||
| 99 | /** | 106 | /** |
| 100 | * enum drm_vmw_handle_type - handle type for ref ioctls | 107 | * enum drm_vmw_handle_type - handle type for ref ioctls |
| @@ -1104,6 +1111,106 @@ struct drm_vmw_handle_close_arg { · 1003 unmodified lines | |||
| 1104 | }; | 1111 | }; |
| 1105 | #define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg | 1112 | #define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg |
| 1106 | 1113 | ||
| 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 | |||
| 1107 | #if defined(__cplusplus) | 1214 | #if defined(__cplusplus) |
| 1108 | } | 1215 | } |
| 1109 | #endif | 1216 | #endif |