From a7ea1697975c647aae421dc5f39613c1187fbaa7 Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Fri, 10 Feb 2017 00:07:23 +0100 Subject: [PATCH] cube.elf now runs in D3D11 mode, still blackscreen --- GPU/D3D11/DrawEngineD3D11.cpp | 1 - GPU/D3D11/GPU_D3D11.cpp | 5 +++++ GPU/D3D11/GPU_D3D11.h | 2 ++ GPU/D3D11/TextureCacheD3D11.cpp | 3 +++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/GPU/D3D11/DrawEngineD3D11.cpp b/GPU/D3D11/DrawEngineD3D11.cpp index 9db91ee6ea..1010375bd1 100644 --- a/GPU/D3D11/DrawEngineD3D11.cpp +++ b/GPU/D3D11/DrawEngineD3D11.cpp @@ -616,7 +616,6 @@ void DrawEngineD3D11::DoFlush() { vai->prim = indexGen.Prim(); vai->maxIndex = indexGen.MaxIndex(); vai->flags = gstate_c.vertexFullAlpha ? VAI11_FLAG_VERTEXFULLALPHA : 0; - goto rotateVBO; } diff --git a/GPU/D3D11/GPU_D3D11.cpp b/GPU/D3D11/GPU_D3D11.cpp index 5bccb87d3f..d915a5b155 100644 --- a/GPU/D3D11/GPU_D3D11.cpp +++ b/GPU/D3D11/GPU_D3D11.cpp @@ -564,6 +564,11 @@ void GPU_D3D11::ReapplyGfxStateInternal() { // TODO: Dirty our caches for depth states etc } +void GPU_D3D11::EndHostFrame() { + // Tell the DrawContext that it's time to reset everything. + draw_->BindPipeline(nullptr); +} + void GPU_D3D11::BeginFrameInternal() { if (resized_) { UpdateCmdInfo(); diff --git a/GPU/D3D11/GPU_D3D11.h b/GPU/D3D11/GPU_D3D11.h index 337342f9c7..a618462a57 100644 --- a/GPU/D3D11/GPU_D3D11.h +++ b/GPU/D3D11/GPU_D3D11.h @@ -90,6 +90,8 @@ public: std::vector DebugGetShaderIDs(DebugShaderType shader) override; std::string DebugGetShaderString(std::string id, DebugShaderType shader, DebugShaderStringType stringType) override; + void EndHostFrame() override; + protected: void FastRunLoop(DisplayList &list) override; void FinishDeferred() override; diff --git a/GPU/D3D11/TextureCacheD3D11.cpp b/GPU/D3D11/TextureCacheD3D11.cpp index 8b7885abcf..3344a03daa 100644 --- a/GPU/D3D11/TextureCacheD3D11.cpp +++ b/GPU/D3D11/TextureCacheD3D11.cpp @@ -107,6 +107,9 @@ ID3D11SamplerState *SamplerCacheD3D11::GetOrCreateSampler(ID3D11Device *device, TextureCacheD3D11::TextureCacheD3D11(Draw::DrawContext *draw) : TextureCacheCommon(draw) { + device_ = (ID3D11Device *)draw->GetNativeObject(Draw::NativeObject::DEVICE); + context_ = (ID3D11DeviceContext *)draw->GetNativeObject(Draw::NativeObject::CONTEXT); + lastBoundTexture = INVALID_TEX; decimationCounter_ = TEXCACHE_DECIMATION_INTERVAL;