Interrupts fire on the right 'thread', ringbuffer work,

This commit is contained in:
Ben Vanik
2013-10-19 11:50:01 -07:00
parent 6db8c6c961
commit 90bc6ad1a8
10 changed files with 145 additions and 48 deletions

View File

@@ -19,14 +19,17 @@ namespace xe {
namespace gpu {
class GraphicsDriver;
class GraphicsSystem;
class RingBufferWorker {
public:
RingBufferWorker(xe_memory_ref memory);
RingBufferWorker(GraphicsSystem* graphics_system, xe_memory_ref memory);
virtual ~RingBufferWorker();
xe_memory_ref memory();
uint64_t GetCounter();
void Initialize(GraphicsDriver* driver,
uint32_t ptr, uint32_t page_count);
void EnableReadPointerWriteBack(uint32_t ptr, uint32_t block_size);
@@ -49,9 +52,11 @@ private:
void WriteRegister(uint32_t index, uint32_t value);
protected:
xe_memory_ref memory_;
xe_memory_ref memory_;
GraphicsSystem* graphics_system_;
GraphicsDriver* driver_;
GraphicsDriver* driver_;
uint64_t counter_base_;
uint32_t primary_buffer_ptr_;
uint32_t primary_buffer_size_;