History

drm/vc4: Add exec flags to allow forcing a specific X/Y tile walk order.

This is useful to allow GL to provide defined results for overlapping glBlitFramebuffer, which X11 in turn uses to accelerate uncomposited window movement without first blitting to a temporary. x11perf -copywinwin100 goes from 1850/sec to 4850/sec. v2: Default to the same behavior as before when the flags aren't passed. (suggested by Boris)

Eric Anholt committed 9 years ago

Commit 3be8edd1 parent fb959924 files · +32 −6Browse files

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

Unified · Split

include/uapi/drm/vc4_drm.h+11−0
@@ -155,6 +155,16 @@ struct drm_vc4_submit_cl { · 154 unmodified lines
155 __u32 pad:24;155 __u32 pad:24;
156 156
157#define VC4_SUBMIT_CL_USE_CLEAR_COLOR (1 << 0)157#define VC4_SUBMIT_CL_USE_CLEAR_COLOR (1 << 0)
158/* By default, the kernel gets to choose the order that the tiles are
159 * rendered in. If this is set, then the tiles will be rendered in a
160 * raster order, with the right-to-left vs left-to-right and
161 * top-to-bottom vs bottom-to-top dictated by
162 * VC4_SUBMIT_CL_RCL_ORDER_INCREASING_*. This allows overlapping
163 * blits to be implemented using the 3D engine.
164 */
165#define VC4_SUBMIT_CL_FIXED_RCL_ORDER (1 << 1)
166#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_X (1 << 2)
167#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_Y (1 << 3)
158 __u32 flags;168 __u32 flags;
159 169
160 /* Returned value of the seqno of this render job (for the170 /* Returned value of the seqno of this render job (for the
@@ -294,6 +304,7 @@ struct drm_vc4_get_hang_state { · 133 unmodified lines
294#define DRM_VC4_PARAM_SUPPORTS_BRANCHES 3304#define DRM_VC4_PARAM_SUPPORTS_BRANCHES 3
295#define DRM_VC4_PARAM_SUPPORTS_ETC1 4305#define DRM_VC4_PARAM_SUPPORTS_ETC1 4
296#define DRM_VC4_PARAM_SUPPORTS_THREADED_FS 5306#define DRM_VC4_PARAM_SUPPORTS_THREADED_FS 5
307#define DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER 6
297 308
298struct drm_vc4_get_param {309struct drm_vc4_get_param {
299 __u32 param;310 __u32 param;

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