Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Types | Data Fields
intel_ring_buffer Struct Reference

#include <intel_ringbuffer.h>

Public Types

enum  intel_ring_id { RCS = 0x0, VCS, BCS }
 

Data Fields

const charname
 
enum
intel_ring_buffer::intel_ring_id 
id
 
u32 mmio_base
 
void __iomemvirtual_start
 
struct drm_devicedev
 
struct drm_i915_gem_objectobj
 
u32 head
 
u32 tail
 
int space
 
int size
 
int effective_size
 
struct intel_hw_status_page status_page
 
u32 last_retired_head
 
u32 irq_refcount
 
u32 irq_enable_mask
 
u32 trace_irq_seqno
 
u32 sync_seqno [I915_NUM_RINGS-1]
 
bool __must_check(* irq_get )(struct intel_ring_buffer *ring)
 
void(* irq_put )(struct intel_ring_buffer *ring)
 
int(* init )(struct intel_ring_buffer *ring)
 
void(* write_tail )(struct intel_ring_buffer *ring, u32 value)
 
int __must_check(* flush )(struct intel_ring_buffer *ring, u32 invalidate_domains, u32 flush_domains)
 
int(* add_request )(struct intel_ring_buffer *ring, u32 *seqno)
 
u32(* get_seqno )(struct intel_ring_buffer *ring, bool lazy_coherency)
 
int(* dispatch_execbuffer )(struct intel_ring_buffer *ring, u32 offset, u32 length)
 
void(* cleanup )(struct intel_ring_buffer *ring)
 
int(* sync_to )(struct intel_ring_buffer *ring, struct intel_ring_buffer *to, u32 seqno)
 
u32 semaphore_register [3]
 
u32 signal_mbox [2]
 
struct list_head active_list
 
struct list_head request_list
 
u32 outstanding_lazy_request
 
bool gpu_caches_dirty
 
wait_queue_head_t irq_queue
 
bool itlb_before_ctx_switch
 
struct i915_hw_contextdefault_context
 
struct drm_i915_gem_objectlast_context_obj
 
voidprivate
 

Detailed Description

Definition at line 29 of file intel_ringbuffer.h.

Member Enumeration Documentation

Enumerator:
RCS 
VCS 
BCS 

Definition at line 31 of file intel_ringbuffer.h.

Field Documentation

struct list_head active_list

List of objects currently involved in rendering from the ringbuffer.

Includes buffers having the contents of their GPU caches flushed, not necessarily primitives. last_rendering_seqno represents when the rendering involved will be completed.

A reference is held on the buffer while on this list.

Definition at line 102 of file intel_ringbuffer.h.

int(* add_request)(struct intel_ring_buffer *ring, u32 *seqno)

Definition at line 73 of file intel_ringbuffer.h.

Definition at line 85 of file intel_ringbuffer.h.

struct i915_hw_context* default_context

Definition at line 122 of file intel_ringbuffer.h.

Definition at line 39 of file intel_ringbuffer.h.

int(* dispatch_execbuffer)(struct intel_ring_buffer *ring, u32 offset, u32 length)

Definition at line 83 of file intel_ringbuffer.h.

int effective_size

Definition at line 46 of file intel_ringbuffer.h.

int __must_check(* flush)(struct intel_ring_buffer *ring, u32 invalidate_domains, u32 flush_domains)

Definition at line 70 of file intel_ringbuffer.h.

u32(* get_seqno)(struct intel_ring_buffer *ring, bool lazy_coherency)

Definition at line 81 of file intel_ringbuffer.h.

bool gpu_caches_dirty

Definition at line 114 of file intel_ringbuffer.h.

Definition at line 42 of file intel_ringbuffer.h.

Definition at line 66 of file intel_ringbuffer.h.

u32 irq_enable_mask

Definition at line 60 of file intel_ringbuffer.h.

Definition at line 63 of file intel_ringbuffer.h.

Definition at line 64 of file intel_ringbuffer.h.

wait_queue_head_t irq_queue

Definition at line 116 of file intel_ringbuffer.h.

u32 irq_refcount

Definition at line 59 of file intel_ringbuffer.h.

bool itlb_before_ctx_switch

Do an explicit TLB flush before MI_SET_CONTEXT

Definition at line 121 of file intel_ringbuffer.h.

struct drm_i915_gem_object* last_context_obj

Definition at line 123 of file intel_ringbuffer.h.

u32 last_retired_head

We track the position of the requests in the ring buffer, and when each is retired we increment last_retired_head as the GPU must have finished processing the request and so we know we can advance the ringbuffer up to that position.

last_retired_head is set to -1 after the value is consumed so we can detect new retirements.

Definition at line 57 of file intel_ringbuffer.h.

u32 mmio_base

Definition at line 37 of file intel_ringbuffer.h.

const char* name

Definition at line 30 of file intel_ringbuffer.h.

Definition at line 40 of file intel_ringbuffer.h.

u32 outstanding_lazy_request

Do we have some not yet emitted requests outstanding?

Definition at line 113 of file intel_ringbuffer.h.

void* private

Definition at line 125 of file intel_ringbuffer.h.

struct list_head request_list

List of breadcrumbs associated with GPU requests currently outstanding.

Definition at line 108 of file intel_ringbuffer.h.

u32 semaphore_register[3]

Definition at line 90 of file intel_ringbuffer.h.

u32 signal_mbox[2]

Definition at line 91 of file intel_ringbuffer.h.

int size

Definition at line 45 of file intel_ringbuffer.h.

int space

Definition at line 44 of file intel_ringbuffer.h.

Definition at line 47 of file intel_ringbuffer.h.

u32 sync_seqno[I915_NUM_RINGS-1]

Definition at line 62 of file intel_ringbuffer.h.

Definition at line 86 of file intel_ringbuffer.h.

u32 tail

Definition at line 43 of file intel_ringbuffer.h.

u32 trace_irq_seqno

Definition at line 61 of file intel_ringbuffer.h.

void __iomem* virtual_start

Definition at line 38 of file intel_ringbuffer.h.

Definition at line 68 of file intel_ringbuffer.h.


The documentation for this struct was generated from the following file: