summaryrefslogtreecommitdiffstats
path: root/src/angle/patches/0009-ANGLE-Avoid-memory-copies-on-buffers-when-data-is-nu.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/angle/patches/0009-ANGLE-Avoid-memory-copies-on-buffers-when-data-is-nu.patch')
-rw-r--r--src/angle/patches/0009-ANGLE-Avoid-memory-copies-on-buffers-when-data-is-nu.patch72
1 files changed, 0 insertions, 72 deletions
diff --git a/src/angle/patches/0009-ANGLE-Avoid-memory-copies-on-buffers-when-data-is-nu.patch b/src/angle/patches/0009-ANGLE-Avoid-memory-copies-on-buffers-when-data-is-nu.patch
deleted file mode 100644
index cecff5c0e8..0000000000
--- a/src/angle/patches/0009-ANGLE-Avoid-memory-copies-on-buffers-when-data-is-nu.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From cde4cd6155791355872f635491630c21c791e7f4 Mon Sep 17 00:00:00 2001
-From: Andrew Knight <andrew.knight@digia.com>
-Date: Fri, 5 Apr 2013 15:11:59 +0300
-Subject: [PATCH] ANGLE: Avoid memory copies on buffers when data is null
-
-With data=0, ANGLE can crash when setting the buffer data. As this
-should be a legal operation, don't perform a memcpy when data is null.
-
-Change-Id: I3fa1260482549b1da50d7a68001a65decb98f258
----
- src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage11.cpp | 22 ++++++++++++++++------
- src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage9.cpp | 3 ++-
- 2 files changed, 18 insertions(+), 7 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage11.cpp
-index 4c37bdb..7fe9e6b 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage11.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage11.cpp
-@@ -182,7 +182,8 @@ void BufferStorage11::setData(const void* data, unsigned int size, unsigned int
- return gl::error(GL_OUT_OF_MEMORY);
- }
-
-- memcpy(mappedResource.pData, data, size);
-+ if (data)
-+ memcpy(mappedResource.pData, data, size);
-
- context->Unmap(mStagingBuffer, 0);
- }
-@@ -211,12 +212,21 @@ void BufferStorage11::setData(const void* data, unsigned int size, unsigned int
- mBufferSize = 0;
- }
-
-- D3D11_SUBRESOURCE_DATA initialData;
-- initialData.pSysMem = data;
-- initialData.SysMemPitch = size;
-- initialData.SysMemSlicePitch = 0;
-
-- result = device->CreateBuffer(&bufferDesc, &initialData, &mBuffer);
-+ if (data)
-+ {
-+ D3D11_SUBRESOURCE_DATA initialData;
-+ initialData.pSysMem = data;
-+ initialData.SysMemPitch = size;
-+ initialData.SysMemSlicePitch = 0;
-+
-+ result = device->CreateBuffer(&bufferDesc, &initialData, &mBuffer);
-+ }
-+ else
-+ {
-+ result = device->CreateBuffer(&bufferDesc, NULL, &mBuffer);
-+ }
-+
- if (FAILED(result))
- {
- return gl::error(GL_OUT_OF_MEMORY);
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage9.cpp
-index 7fc14fc..4468461 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage9.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/BufferStorage9.cpp
-@@ -54,7 +54,8 @@ void BufferStorage9::setData(const void* data, unsigned int size, unsigned int o
- }
-
- mSize = std::max(mSize, offset + size);
-- memcpy(reinterpret_cast<char*>(mMemory) + offset, data, size);
-+ if (data)
-+ memcpy(reinterpret_cast<char*>(mMemory) + offset, data, size);
- }
-
- void BufferStorage9::clear()
---
-1.8.1.msysgit.1
-