Subversion Repositories Kolibri OS

Rev

Rev 6936 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6936 Rev 7143
Line 770... Line 770...
770
 * than as the per-file handle.
770
 * than as the per-file handle.
771
 */
771
 */
772
#define I915_EXEC_HANDLE_LUT		(1<<12)
772
#define I915_EXEC_HANDLE_LUT		(1<<12)
Line 773... Line 773...
773
 
773
 
774
/** Used for switching BSD rings on the platforms with two BSD rings */
774
/** Used for switching BSD rings on the platforms with two BSD rings */
-
 
775
#define I915_EXEC_BSD_SHIFT	 (13)
-
 
776
#define I915_EXEC_BSD_MASK	 (3 << I915_EXEC_BSD_SHIFT)
775
#define I915_EXEC_BSD_MASK		(3<<13)
777
/* default ping-pong mode */
776
#define I915_EXEC_BSD_DEFAULT		(0<<13) /* default ping-pong mode */
778
#define I915_EXEC_BSD_DEFAULT	 (0 << I915_EXEC_BSD_SHIFT)
777
#define I915_EXEC_BSD_RING1		(1<<13)
779
#define I915_EXEC_BSD_RING1	 (1 << I915_EXEC_BSD_SHIFT)
Line 778... Line 780...
778
#define I915_EXEC_BSD_RING2		(2<<13)
780
#define I915_EXEC_BSD_RING2	 (2 << I915_EXEC_BSD_SHIFT)
779
 
781
 
780
/** Tell the kernel that the batchbuffer is processed by
782
/** Tell the kernel that the batchbuffer is processed by
781
 *  the resource streamer.
783
 *  the resource streamer.
Line 810... Line 812...
810
 
812
 
811
struct drm_i915_gem_busy {
813
struct drm_i915_gem_busy {
812
	/** Handle of the buffer to check for busy */
814
	/** Handle of the buffer to check for busy */
Line 813... Line 815...
813
	__u32 handle;
815
	__u32 handle;
-
 
816
 
-
 
817
	/** Return busy status
-
 
818
	 *
-
 
819
	 * A return of 0 implies that the object is idle (after
-
 
820
	 * having flushed any pending activity), and a non-zero return that
-
 
821
	 * the object is still in-flight on the GPU. (The GPU has not yet
-
 
822
	 * signaled completion for all pending requests that reference the
-
 
823
	 * object.)
-
 
824
	 *
-
 
825
	 * The returned dword is split into two fields to indicate both
-
 
826
	 * the engines on which the object is being read, and the
-
 
827
	 * engine on which it is currently being written (if any).
-
 
828
	 *
-
 
829
	 * The low word (bits 0:15) indicate if the object is being written
-
 
830
	 * to by any engine (there can only be one, as the GEM implicit
-
 
831
	 * synchronisation rules force writes to be serialised). Only the
814
 
832
	 * engine for the last write is reported.
-
 
833
	 *
815
	/** Return busy status (1 if busy, 0 if idle).
834
	 * The high word (bits 16:31) are a bitmask of which engines are
-
 
835
	 * currently reading from the object. Multiple engines may be
816
	 * The high word is used to indicate on which rings the object
836
	 * reading from the object simultaneously.
-
 
837
	 *
-
 
838
	 * The value of each engine is the same as specified in the
-
 
839
	 * EXECBUFFER2 ioctl, i.e. I915_EXEC_RENDER, I915_EXEC_BSD etc.
-
 
840
	 * Note I915_EXEC_DEFAULT is a symbolic value and is mapped to
-
 
841
	 * the I915_EXEC_RENDER engine for execution, and so it is never
-
 
842
	 * reported as active itself. Some hardware may have parallel
-
 
843
	 * execution engines, e.g. multiple media engines, which are
817
	 * currently resides:
844
	 * mapped to the same identifier in the EXECBUFFER2 ioctl and
818
	 *  16:31 - busy (r or r/w) rings (16 render, 17 bsd, 18 blt, etc)
845
	 * so are not separately reported for busyness.
819
	 */
846
	 */
Line 820... Line 847...
820
	__u32 busy;
847
	__u32 busy;