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