diff options
| author | flacs <tilkax@gmail.com> | 2015-09-16 21:18:22 +0200 |
|---|---|---|
| committer | flacs <tilkax@gmail.com> | 2015-09-16 21:18:22 +0200 |
| commit | ca7b999968a786196b6674c540db6a609e5a8803 (patch) | |
| tree | d1179f1b1923b514ec83fe903dd1273264a54f12 /Source/Core/VideoBackends/D3D/PSTextureEncoder.cpp | |
| parent | 6dd212d3841be8d5a70f0532183979364ac8b8ee (diff) | |
| parent | deeb1d837042f7d95404516bf590aa82aa5e1b4d (diff) | |
Merge pull request #3046 from phire/dx11-segfault
Remove segfault from DX11 backend.
Diffstat (limited to 'Source/Core/VideoBackends/D3D/PSTextureEncoder.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/D3D/PSTextureEncoder.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/D3D/PSTextureEncoder.cpp b/Source/Core/VideoBackends/D3D/PSTextureEncoder.cpp index a5fa6de7a5..736bf2f042 100644 --- a/Source/Core/VideoBackends/D3D/PSTextureEncoder.cpp +++ b/Source/Core/VideoBackends/D3D/PSTextureEncoder.cpp @@ -152,9 +152,10 @@ void PSTextureEncoder::Encode(u8* dst, const TextureCache::TCacheEntryBase *text CHECK(SUCCEEDED(hr), "map staging buffer (0x%x)", hr); u8* src = (u8*)map.pData; + u32 readStride = std::min(texture_entry->CacheLinesPerRow() * 32, map.RowPitch); for (unsigned int y = 0; y < texture_entry->NumBlocksY(); ++y) { - memcpy(dst, src, texture_entry->CacheLinesPerRow() * 32); + memcpy(dst, src, readStride); dst += texture_entry->memory_stride; src += map.RowPitch; } |
