Further stuff.

This commit is contained in:
Henrik Rydgard 2017-02-09 13:27:45 +01:00
parent ba95e0f4d9
commit 76587ec61c
6 changed files with 17 additions and 2 deletions

View file

@ -1167,6 +1167,7 @@ set(GPU_D3D11
GPU/D3D11/FramebufferManagerD3D11.h
GPU/D3D11/GPU_D3D11.cpp
GPU/D3D11/GPU_D3D11.h
GPU/D3D11/StencilBufferD3D11.cpp
GPU/D3D11/ShaderManagerD3D11.cpp
GPU/D3D11/ShaderManagerD3D11.h
GPU/D3D11/StateMappingD3D11.cpp

View file

@ -59,6 +59,10 @@ void StockObjectsD3D11::Create(ID3D11Device *device) {
depth_desc.StencilWriteMask = 0xFF;
depth_desc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_REPLACE;
depth_desc.BackFace.StencilPassOp = D3D11_STENCIL_OP_REPLACE;
depth_desc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_REPLACE;
depth_desc.BackFace.StencilFailOp = D3D11_STENCIL_OP_REPLACE;
depth_desc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_REPLACE;
depth_desc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_REPLACE;
depth_desc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
depth_desc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
device->CreateDepthStencilState(&depth_desc, &depthDisabledStencilWrite);

View file

@ -119,6 +119,7 @@ FramebufferManagerD3D11::FramebufferManagerD3D11(Draw::DrawContext *draw)
}
FramebufferManagerD3D11::~FramebufferManagerD3D11() {
// Drawing cleanup
if (pFramebufferVertexShader_) {
pFramebufferVertexShader_->Release();
pFramebufferVertexShader_ = nullptr;
@ -131,10 +132,18 @@ FramebufferManagerD3D11::~FramebufferManagerD3D11() {
if (drawPixelsTex_) {
drawPixelsTex_->Release();
}
// FBO cleanup
for (auto it = tempFBOs_.begin(), end = tempFBOs_.end(); it != end; ++it) {
delete it->second.fbo;
}
delete[] convBuf;
// Stencil cleanup
for (int i = 0; i < 256; i++) {
if (stencilMaskStates_[i])
stencilMaskStates_[i]->Release();
}
if (stencilUploadPS_) {
stencilUploadPS_->Release();
}

View file

@ -120,6 +120,7 @@ private:
ID3D11PixelShader *stencilUploadPS_;
ID3D11VertexShader *stencilUploadVS_;
ID3D11InputLayout *stencilUploadInputLayout_;
ID3D11DepthStencilState *stencilMaskStates_[256]{};
bool stencilUploadFailed_;
TextureCacheD3D11 *textureCacheD3D11_;

View file

@ -1157,7 +1157,7 @@ void TextureCacheD3D11::LoadTextureLevel(TexCacheEntry &entry, ReplacedTexture &
pixelData = (u32 *)map.pData;
// We always end up at 8888. Other parts assume this.
assert(dstFmt == D3DFMT_A8R8G8B8);
assert(dstFmt == DXGI_FORMAT_R8G8B8A8_UNORM);
bpp = sizeof(u32);
decPitch = w * bpp;

View file

@ -903,7 +903,7 @@ Pipeline *VKContext::CreateGraphicsPipeline(const PipelineDesc &desc) {
return nullptr;
}
if (desc.uniformDesc) {
pipeline->dynamicUniformSize = desc.uniformDesc->uniformBufferSize;
pipeline->dynamicUniformSize = (int)desc.uniformDesc->uniformBufferSize;
}
return pipeline;