Revert "Disable GL buffer mapping on TSAN/Mac."
This reverts commitc203e65265
. Reason for revert: <INSERT REASONING HERE> Original change's description: > Disable GL buffer mapping on TSAN/Mac. > > Also reverts65e7063796
which disabled buffer mapping in GrResourceProvider::createPatternedIndexBuffer. > > Bug: skia:7058 > Change-Id: I6816abe53251e1cd8e92eae41b8cdbe45218a341 > Reviewed-on: https://skia-review.googlesource.com/50100 > Reviewed-by: Robert Phillips <robertphillips@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=mtklein@google.com,bsalomon@google.com,robertphillips@google.com Change-Id: Icf0cf40ba4d6e7081971eee2eea0a41033790df7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:7058 Reviewed-on: https://skia-review.googlesource.com/57220 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
This commit is contained in:
parent
c5eb97dd88
commit
4e7cdd5a00
@ -195,8 +195,7 @@ def dm_flags(api, bot):
|
|||||||
configs = [x.replace(old, new) for x in configs]
|
configs = [x.replace(old, new) for x in configs]
|
||||||
# We also test non-msaa instanced.
|
# We also test non-msaa instanced.
|
||||||
configs.append(new)
|
configs.append(new)
|
||||||
elif 'MacMini7.1' in bot and 'TSAN' not in bot:
|
elif 'MacMini7.1' in bot:
|
||||||
# The TSAN bot disables GL buffer mapping which is required for inst.
|
|
||||||
configs.extend([gl_prefix + 'inst'])
|
configs.extend([gl_prefix + 'inst'])
|
||||||
|
|
||||||
# CommandBuffer bot *only* runs the command_buffer config.
|
# CommandBuffer bot *only* runs the command_buffer config.
|
||||||
|
@ -330,17 +330,13 @@ const GrBuffer* GrResourceProvider::createPatternedIndexBuffer(const uint16_t* p
|
|||||||
size_t bufferSize = patternSize * reps * sizeof(uint16_t);
|
size_t bufferSize = patternSize * reps * sizeof(uint16_t);
|
||||||
|
|
||||||
// This is typically used in GrMeshDrawOps, so we assume kNoPendingIO.
|
// This is typically used in GrMeshDrawOps, so we assume kNoPendingIO.
|
||||||
sk_sp<GrBuffer> buffer(this->createBuffer(bufferSize, kIndex_GrBufferType,
|
GrBuffer* buffer = this->createBuffer(bufferSize, kIndex_GrBufferType, kStatic_GrAccessPattern,
|
||||||
kStatic_GrAccessPattern, kNoPendingIO_Flag));
|
kNoPendingIO_Flag);
|
||||||
if (!buffer) {
|
if (!buffer) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
uint16_t* data = (uint16_t*) buffer->map();
|
|
||||||
SkAutoTArray<uint16_t> temp;
|
SkAutoTArray<uint16_t> data(reps * patternSize);
|
||||||
if (!data) {
|
|
||||||
temp.reset(reps * patternSize);
|
|
||||||
data = temp.get();
|
|
||||||
}
|
|
||||||
for (int i = 0; i < reps; ++i) {
|
for (int i = 0; i < reps; ++i) {
|
||||||
int baseIdx = i * patternSize;
|
int baseIdx = i * patternSize;
|
||||||
uint16_t baseVert = (uint16_t)(i * vertCount);
|
uint16_t baseVert = (uint16_t)(i * vertCount);
|
||||||
@ -348,15 +344,14 @@ const GrBuffer* GrResourceProvider::createPatternedIndexBuffer(const uint16_t* p
|
|||||||
data[baseIdx+j] = baseVert + pattern[j];
|
data[baseIdx+j] = baseVert + pattern[j];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (temp.get()) {
|
|
||||||
if (!buffer->updateData(data, bufferSize)) {
|
if (!buffer->updateData(data.get(), bufferSize)) {
|
||||||
return nullptr;
|
buffer->unref();
|
||||||
}
|
return nullptr;
|
||||||
} else {
|
|
||||||
buffer->unmap();
|
|
||||||
}
|
}
|
||||||
this->assignUniqueKeyToResource(key, buffer.get());
|
|
||||||
return buffer.release();
|
this->assignUniqueKeyToResource(key, buffer);
|
||||||
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
static constexpr int kMaxQuads = 1 << 12; // max possible: (1 << 14) - 1;
|
static constexpr int kMaxQuads = 1 << 12; // max possible: (1 << 14) - 1;
|
||||||
|
@ -481,14 +481,6 @@ void GrGLCaps::init(const GrContextOptions& contextOptions,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__has_feature)
|
|
||||||
#if defined(SK_BUILD_FOR_MAC) && __has_feature(thread_sanitizer)
|
|
||||||
// See skbug.com/7058
|
|
||||||
fMapBufferType = kNone_MapBufferType;
|
|
||||||
fMapBufferFlags = kNone_MapFlags;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// We found that the Galaxy J5 with an Adreno 306 running 6.0.1 has a bug where
|
// We found that the Galaxy J5 with an Adreno 306 running 6.0.1 has a bug where
|
||||||
// GL_INVALID_OPERATION thrown by glDrawArrays when using a buffer that was mapped. The same bug
|
// GL_INVALID_OPERATION thrown by glDrawArrays when using a buffer that was mapped. The same bug
|
||||||
// did not reproduce on a Nexus7 2013 with a 320 running Android M with driver 127.0. It's
|
// did not reproduce on a Nexus7 2013 with a 320 running Android M with driver 127.0. It's
|
||||||
|
@ -37,8 +37,7 @@ GrCaps::InstancedSupport GLInstancedRendering::CheckSupport(const GrGLCaps& glCa
|
|||||||
// This method is only intended to be used for initializing fInstancedSupport in the caps.
|
// This method is only intended to be used for initializing fInstancedSupport in the caps.
|
||||||
SkASSERT(GrCaps::InstancedSupport::kNone == glCaps.instancedSupport());
|
SkASSERT(GrCaps::InstancedSupport::kNone == glCaps.instancedSupport());
|
||||||
if (!glCaps.vertexArrayObjectSupport() ||
|
if (!glCaps.vertexArrayObjectSupport() ||
|
||||||
(!glCaps.drawIndirectSupport() && !glCaps.drawInstancedSupport()) ||
|
(!glCaps.drawIndirectSupport() && !glCaps.drawInstancedSupport())) {
|
||||||
GrGLCaps::kNone_MapBufferType == glCaps.mapBufferType()) {
|
|
||||||
return GrCaps::InstancedSupport::kNone;
|
return GrCaps::InstancedSupport::kNone;
|
||||||
}
|
}
|
||||||
return InstanceProcessor::CheckSupport(*glCaps.shaderCaps(), glCaps);
|
return InstanceProcessor::CheckSupport(*glCaps.shaderCaps(), glCaps);
|
||||||
|
@ -64,10 +64,6 @@ bool does_full_buffer_contain_correct_values(GrColor* srcBuffer,
|
|||||||
|
|
||||||
void basic_transfer_test(skiatest::Reporter* reporter, GrContext* context, GrPixelConfig config,
|
void basic_transfer_test(skiatest::Reporter* reporter, GrContext* context, GrPixelConfig config,
|
||||||
GrSurfaceOrigin origin, bool renderTarget) {
|
GrSurfaceOrigin origin, bool renderTarget) {
|
||||||
if (GrCaps::kNone_MapFlags == context->caps()->mapBufferFlags()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// set up the data
|
// set up the data
|
||||||
const int kTextureWidth = 16;
|
const int kTextureWidth = 16;
|
||||||
const int kTextureHeight = 16;
|
const int kTextureHeight = 16;
|
||||||
|
Loading…
Reference in New Issue
Block a user