diff options
| author | Dave Airlie <airlied@redhat.com> | 2016-07-15 21:25:11 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2016-07-15 21:25:11 -0400 |
| commit | 2d635fded22b71381b01e194a59544f2e8d71ef0 (patch) | |
| tree | 7c213ddcc190bb32b14daa20451c4703bcd8ab4a /include/uapi | |
| parent | ec2174fec9f16b2087c4de69fb892baf4bf43afb (diff) | |
| parent | a20d5fa61c32a0c94d237da642326db2ef3c7433 (diff) | |
Merge tag 'drm-vc4-next-2016-07-15' of https://github.com/anholt/linux into drm-next
This pull request brings in vc4 shader validation for branching,
allowing GLSL shaders with non-unrolled loops.
* tag 'drm-vc4-next-2016-07-15' of https://github.com/anholt/linux:
drm/vc4: Fix a "the the" typo in a comment.
drm/vc4: Fix definition of QPU_R_MS_REV_FLAGS
drm/vc4: Add a getparam to signal support for branches.
drm/vc4: Add support for branching in shader validation.
drm/vc4: Add a bitmap of branch targets during shader validation.
drm/vc4: Move validation's current/max ip into the validation struct.
drm/vc4: Add a getparam ioctl for getting the V3D identity regs.
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/drm/vc4_drm.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/uapi/drm/vc4_drm.h b/include/uapi/drm/vc4_drm.h index af12e8a184c8..ad7edc3edf7c 100644 --- a/include/uapi/drm/vc4_drm.h +++ b/include/uapi/drm/vc4_drm.h | |||
| @@ -37,6 +37,7 @@ extern "C" { | |||
| 37 | #define DRM_VC4_MMAP_BO 0x04 | 37 | #define DRM_VC4_MMAP_BO 0x04 |
| 38 | #define DRM_VC4_CREATE_SHADER_BO 0x05 | 38 | #define DRM_VC4_CREATE_SHADER_BO 0x05 |
| 39 | #define DRM_VC4_GET_HANG_STATE 0x06 | 39 | #define DRM_VC4_GET_HANG_STATE 0x06 |
| 40 | #define DRM_VC4_GET_PARAM 0x07 | ||
| 40 | 41 | ||
| 41 | #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl) | 42 | #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl) |
| 42 | #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno) | 43 | #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno) |
| @@ -45,6 +46,7 @@ extern "C" { | |||
| 45 | #define DRM_IOCTL_VC4_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_MMAP_BO, struct drm_vc4_mmap_bo) | 46 | #define DRM_IOCTL_VC4_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_MMAP_BO, struct drm_vc4_mmap_bo) |
| 46 | #define DRM_IOCTL_VC4_CREATE_SHADER_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_SHADER_BO, struct drm_vc4_create_shader_bo) | 47 | #define DRM_IOCTL_VC4_CREATE_SHADER_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_SHADER_BO, struct drm_vc4_create_shader_bo) |
| 47 | #define DRM_IOCTL_VC4_GET_HANG_STATE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_HANG_STATE, struct drm_vc4_get_hang_state) | 48 | #define DRM_IOCTL_VC4_GET_HANG_STATE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_HANG_STATE, struct drm_vc4_get_hang_state) |
| 49 | #define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param) | ||
| 48 | 50 | ||
| 49 | struct drm_vc4_submit_rcl_surface { | 51 | struct drm_vc4_submit_rcl_surface { |
| 50 | __u32 hindex; /* Handle index, or ~0 if not present. */ | 52 | __u32 hindex; /* Handle index, or ~0 if not present. */ |
| @@ -280,6 +282,17 @@ struct drm_vc4_get_hang_state { | |||
| 280 | __u32 pad[16]; | 282 | __u32 pad[16]; |
| 281 | }; | 283 | }; |
| 282 | 284 | ||
| 285 | #define DRM_VC4_PARAM_V3D_IDENT0 0 | ||
| 286 | #define DRM_VC4_PARAM_V3D_IDENT1 1 | ||
| 287 | #define DRM_VC4_PARAM_V3D_IDENT2 2 | ||
| 288 | #define DRM_VC4_PARAM_SUPPORTS_BRANCHES 3 | ||
| 289 | |||
| 290 | struct drm_vc4_get_param { | ||
| 291 | __u32 param; | ||
| 292 | __u32 pad; | ||
| 293 | __u64 value; | ||
| 294 | }; | ||
| 295 | |||
| 283 | #if defined(__cplusplus) | 296 | #if defined(__cplusplus) |
| 284 | } | 297 | } |
| 285 | #endif | 298 | #endif |
