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 | 69 | #define DRM_VMW_GB_SURFACE_REF 24 |
| 70 | 70 | #define DRM_VMW_SYNCCPU 25 |
| 71 | 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 | 83 | * DRM_VMW_PARAM_OVERLAY_IOCTL: |
| 82 | 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 | 90 | #define DRM_VMW_PARAM_NUM_STREAMS 0 |
| @@ -95,6 +100,8 @@ extern "C" { · 9 unmodified lines | ||
| 95 | 100 | #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 |
| 96 | 101 | #define DRM_VMW_PARAM_SCREEN_TARGET 11 |
| 97 | 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 | 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 | 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 | 1214 | #if defined(__cplusplus) |
| 1108 | 1215 | } |
| 1109 | 1216 | #endif |