reduced frequency of dx9 ps_2_0 pixel generation errors, and made dx9 efb depth peek of 16-bit depth buffer not use 24-bit adjustment factor. shouldn't affect other the plugins.

(probably nobody else cares, but I need at least one video plugin that actually works on this computer)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6618 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
nitsuja- 2010-12-19 20:59:23 +00:00
parent 47454a4ed9
commit 98fe8437ae
12 changed files with 200 additions and 166 deletions

View file

@ -131,12 +131,18 @@ void TextureCache::TCacheEntry::FromRenderTarget(bool bFromZBuffer, bool bScaleB
D3DFORMAT bformat = FramebufferManager::GetEFBDepthRTSurfaceFormat();
int SSAAMode = g_ActiveConfig.iMultisampleMode;
int depthConversionType;
if(bformat == FOURCC_RAWZ || bformat == D3DFMT_D24X8 || !bFromZBuffer)
depthConversionType = PixelShaderCache::DEPTH_CONVERSION_TYPE_NONE;
else if(bformat == FOURCC_DF16)
depthConversionType = PixelShaderCache::DEPTH_CONVERSION_TYPE_16BIT;
else
depthConversionType = PixelShaderCache::DEPTH_CONVERSION_TYPE_24BIT;
D3D::drawShadedTexQuad(read_texture, &sourcerect,
Renderer::GetFullTargetWidth(), Renderer::GetFullTargetHeight(),
virtualW, virtualH,
((bformat != FOURCC_RAWZ && bformat != D3DFMT_D24X8) && bFromZBuffer) ?
PixelShaderCache::GetDepthMatrixProgram(SSAAMode) :
PixelShaderCache::GetColorMatrixProgram(SSAAMode),
PixelShaderCache::GetDepthMatrixProgram(SSAAMode, depthConversionType),
VertexShaderCache::GetSimpleVertexShader(SSAAMode));
Rendersurf->Release();