diff --git a/rpcs3/Emu/RSX/D3D12/D3D12.h b/rpcs3/Emu/RSX/D3D12/D3D12.h index e23cb4f0de..71e94fa740 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12.h +++ b/rpcs3/Emu/RSX/D3D12/D3D12.h @@ -29,9 +29,9 @@ size_t powerOf2Align(size_t unalignedVal, size_t powerOf2) inline void streamToBuffer(void* dst, void* src, size_t sizeInBytes) { - for (unsigned i = 0; i < sizeInBytes / 16; i++) +#pragma omp parallel for + for (int i = 0; i < sizeInBytes / 16; i++) { - const __m128i &srcPtr = _mm_loadu_si128((__m128i*) ((char*)src + i * 16)); _mm_stream_si128((__m128i*)((char*)dst + i * 16), srcPtr); } @@ -45,9 +45,10 @@ inline void streamBuffer(void* dst, void* src, size_t sizeInBytes) { // Assume 64 bytes cache line - unsigned offset = 0; + int offset = 0; bool isAligned = !((size_t)src & 15); - for (; (offset + 64) < sizeInBytes; offset += 64) + #pragma omp parallel for + for (offset = 0; offset < sizeInBytes - 64; offset += 64) { char *line = (char*)src + offset; char *dstline = (char*)dst + offset; diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp index c9f93c14bc..d5d30cd603 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp +++ b/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp @@ -222,10 +222,9 @@ ID3D12Resource *uploadSingleTexture( log2width = (u32)(logf(w) / logf(2.f)); log2height = (u32)(logf(h) / logf(2.f)); + #pragma omp parallel for for (int j = 0; j < w; j++) - { dst[(row * rowPitch / 4) + j] = src[LinearToSwizzleAddress(j, row, 0, log2width, log2height, 0)]; - } } else streamBuffer((char*)textureData + row * rowPitch, (char*)pixels + row * m_texture_pitch, m_texture_pitch); diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index db6314a0ce..049f949613 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -758,6 +758,7 @@ true + true true diff --git a/rpcs3/rpcs3.vcxproj b/rpcs3/rpcs3.vcxproj index 3ac2b0fd1a..742c4f112b 100644 --- a/rpcs3/rpcs3.vcxproj +++ b/rpcs3/rpcs3.vcxproj @@ -84,6 +84,7 @@ stdafx_gui.h $(IntDir)$(TargetName)_gui.pch _UNICODE;UNICODE;%(PreprocessorDefinitions);DX12_SUPPORT + true true @@ -114,6 +115,7 @@ Async stdafx_gui.h $(IntDir)$(TargetName)_gui.pch + true true @@ -150,6 +152,7 @@ true stdafx_gui.h $(IntDir)$(TargetName)_gui.pch + true Windows