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; |