mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-12 06:08:30 +09:00
[Fix] (MG_Backend/DirectGLES): use safer buffer upload path. MAY AFFECT PERFORMANCE!!
This commit is contained in:
@@ -26,7 +26,7 @@
|
|||||||
#include <cctype>
|
#include <cctype>
|
||||||
|
|
||||||
namespace MobileGL::MG_Backend::DirectGLES {
|
namespace MobileGL::MG_Backend::DirectGLES {
|
||||||
constexpr Bool PREFER_MAP_BUFFER_RANGE_FOR_BUFFER_SYNC = true;
|
constexpr Bool PREFER_MAP_BUFFER_RANGE_FOR_BUFFER_SYNC = false;
|
||||||
constexpr const char* BASE_INSTANCE_UNIFORM_NAME = "mg_BaseInstance";
|
constexpr const char* BASE_INSTANCE_UNIFORM_NAME = "mg_BaseInstance";
|
||||||
|
|
||||||
static Uint ResolveBackendEsslVersion() {
|
static Uint ResolveBackendEsslVersion() {
|
||||||
@@ -130,9 +130,11 @@ namespace MobileGL::MG_Backend::DirectGLES {
|
|||||||
|
|
||||||
// glMapBufferRange or glBufferSubData
|
// glMapBufferRange or glBufferSubData
|
||||||
Bool useInvalidationMap = !(stateBufferObject->GetChangeBits() & BufferChangeBits::ForbidInvalidationBit);
|
Bool useInvalidationMap = !(stateBufferObject->GetChangeBits() & BufferChangeBits::ForbidInvalidationBit);
|
||||||
|
// TODO: MAY AFFECT PERFORMANCE
|
||||||
Bool useUnsynchronizedMap =
|
Bool useUnsynchronizedMap =
|
||||||
!(stateBufferObject->GetChangeBits() & BufferChangeBits::ForbidUnsynchronizationBit);
|
!(stateBufferObject->GetChangeBits() & BufferChangeBits::ForbidUnsynchronizationBit);
|
||||||
Bool useMapBufferRange = useInvalidationMap || useUnsynchronizedMap;
|
Bool useMapBufferRange = PREFER_MAP_BUFFER_RANGE_FOR_BUFFER_SYNC &&
|
||||||
|
(useInvalidationMap || useUnsynchronizedMap);
|
||||||
|
|
||||||
if (!useMapBufferRange && PREFER_MAP_BUFFER_RANGE_FOR_BUFFER_SYNC) {
|
if (!useMapBufferRange && PREFER_MAP_BUFFER_RANGE_FOR_BUFFER_SYNC) {
|
||||||
auto usage = stateBufferObject->GetUsage();
|
auto usage = stateBufferObject->GetUsage();
|
||||||
|
|||||||
Reference in New Issue
Block a user