summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D/PSTextureEncoder.cpp
diff options
context:
space:
mode:
authorflacs <tilkax@gmail.com>2015-09-16 21:18:22 +0200
committerflacs <tilkax@gmail.com>2015-09-16 21:18:22 +0200
commitca7b999968a786196b6674c540db6a609e5a8803 (patch)
treed1179f1b1923b514ec83fe903dd1273264a54f12 /Source/Core/VideoBackends/D3D/PSTextureEncoder.cpp
parent6dd212d3841be8d5a70f0532183979364ac8b8ee (diff)
parentdeeb1d837042f7d95404516bf590aa82aa5e1b4d (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.cpp3
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;
}