Wiring up register read/write from JIT -> GPU.

This commit is contained in:
Ben Vanik
2013-05-31 21:22:00 -07:00
parent edf3a9155b
commit ef0032ecff
14 changed files with 164 additions and 12 deletions

View File

@@ -23,3 +23,12 @@ D3D11GraphicsSystem::D3D11GraphicsSystem(const CreationParams* params) :
D3D11GraphicsSystem::~D3D11GraphicsSystem() {
}
uint64_t D3D11GraphicsSystem::ReadRegister(uint32_t r) {
XELOGGPU("ReadRegister(%.4X)", r);
return 0;
}
void D3D11GraphicsSystem::WriteRegister(uint32_t r, uint64_t value) {
XELOGGPU("WriteRegister(%.4X, %.8X)", r, value);
}

View File

@@ -28,6 +28,9 @@ class D3D11GraphicsSystem : public GraphicsSystem {
public:
D3D11GraphicsSystem(const CreationParams* params);
virtual ~D3D11GraphicsSystem();
virtual uint64_t ReadRegister(uint32_t r);
virtual void WriteRegister(uint32_t r, uint64_t value);
};

View File

@@ -20,6 +20,8 @@ namespace gpu {
class CreationParams {
public:
xe_memory_ref memory;
CreationParams() : memory(NULL) {}
};
@@ -29,6 +31,16 @@ public:
xe_memory_ref memory();
virtual uint64_t ReadRegister(uint32_t r) = 0;
virtual void WriteRegister(uint32_t r, uint64_t value) = 0;
static uint64_t ReadRegisterThunk(GraphicsSystem* this_ptr, uint32_t r) {
return this_ptr->ReadRegister(r);
}
static void WriteRegisterThunk(GraphicsSystem* this_ptr, uint32_t r, uint64_t value) {
this_ptr->WriteRegister(r, value);
}
protected:
GraphicsSystem(const CreationParams* params);

View File

@@ -23,3 +23,12 @@ NopGraphicsSystem::NopGraphicsSystem(const CreationParams* params) :
NopGraphicsSystem::~NopGraphicsSystem() {
}
uint64_t NopGraphicsSystem::ReadRegister(uint32_t r) {
XELOGGPU("ReadRegister(%.4X)", r);
return 0;
}
void NopGraphicsSystem::WriteRegister(uint32_t r, uint64_t value) {
XELOGGPU("WriteRegister(%.4X, %.8X)", r, value);
}

View File

@@ -25,6 +25,9 @@ class NopGraphicsSystem : public GraphicsSystem {
public:
NopGraphicsSystem(const CreationParams* params);
virtual ~NopGraphicsSystem();
virtual uint64_t ReadRegister(uint32_t r);
virtual void WriteRegister(uint32_t r, uint64_t value);
};