Merge mozilla-central to autoland. a=merge CLOSED TREE

This commit is contained in:
Gurzau Raul 2019-02-07 07:07:17 +02:00
commit 43f7c8bef6
7 changed files with 44 additions and 12 deletions

View File

@ -19,16 +19,20 @@ WebGLExtensionColorBufferHalfFloat::WebGLExtensionColorBufferHalfFloat(
auto& fua = webgl->mFormatUsage;
auto fnUpdateUsage = [&fua](GLenum sizedFormat,
webgl::EffectiveFormat effFormat) {
webgl::EffectiveFormat effFormat,
const bool renderable) {
auto usage = fua->EditUsage(effFormat);
usage->SetRenderable();
fua->AllowRBFormat(sizedFormat, usage);
if (renderable) {
usage->SetRenderable();
}
fua->AllowRBFormat(sizedFormat, usage, renderable);
};
#define FOO(x) fnUpdateUsage(LOCAL_GL_##x, webgl::EffectiveFormat::x)
#define FOO(x, y) fnUpdateUsage(LOCAL_GL_##x, webgl::EffectiveFormat::x, y)
FOO(RGBA16F);
FOO(RGB16F);
FOO(RGBA16F, true);
FOO(RGB16F, false); // It's not required, thus not portable. (Also there's a
// wicked driver bug on Mac+Intel)
#undef FOO
}

View File

@ -1118,10 +1118,11 @@ bool FormatUsageAuthority::AreUnpackEnumsValid(GLenum unpackFormat,
////////////////////
void FormatUsageAuthority::AllowRBFormat(GLenum sizedFormat,
const FormatUsageInfo* usage) {
const FormatUsageInfo* usage,
const bool expectRenderable) {
MOZ_ASSERT(!usage->format->compression);
MOZ_ASSERT(usage->format->sizedFormat);
MOZ_ASSERT(usage->IsRenderable());
MOZ_ASSERT(usage->IsRenderable() || !expectRenderable);
AlwaysInsert(mRBFormatMap, sizedFormat, usage);
}

View File

@ -376,7 +376,8 @@ class FormatUsageAuthority {
bool IsInternalFormatEnumValid(GLenum internalFormat) const;
bool AreUnpackEnumsValid(GLenum unpackFormat, GLenum unpackType) const;
void AllowRBFormat(GLenum sizedFormat, const FormatUsageInfo* usage);
void AllowRBFormat(GLenum sizedFormat, const FormatUsageInfo* usage,
bool expectRenderable = true);
void AllowSizedTexFormat(GLenum sizedFormat, const FormatUsageInfo* usage);
void AllowUnsizedTexFormat(const PackingInfo& pi,
const FormatUsageInfo* usage);

View File

@ -0,0 +1,13 @@
<style>
html, body {
margin: 0;
}
</style>
<div style="filter: drop-shadow(50px 50px 20px red)">
<div style="width:256px; height:256px; border-radius:16px; overflow:hidden">
<div style="width:256px; height:256px; background-color:green;"></div>
</div>
</div>
<!-- add white divs on top to simulate the clip from the test file -->
<div style="background-color: white; position:absolute; left: 0; top: 0; width: 100px; height: 700px"></div>
<div style="background-color: white; position:absolute; left: 0; top: 0; width: 700px; height: 100px"></div>

View File

@ -0,0 +1,12 @@
<style>
html, body {
margin: 0;
}
</style>
<div style="clip: rect(100px,1000px,1000px,100px); position:absolute">
<div style="filter: drop-shadow(50px 50px 20px red)">
<div style="width:256px; height:256px; border-radius:16px; overflow:hidden">
<div style="width:256px; height:256px; background-color:green;"></div>
</div>
</div>
</div>

View File

@ -20,3 +20,4 @@ fuzzy(0-11,0-4) == 1474722.html 1474722-ref.html
== 1519754.html 1519754-ref.html
skip-if(!asyncPan) == 1524261.html 1524261-ref.html
fuzzy-if(webrender,14-14,44-44) == 1524353.html 1524353-ref.html
fuzzy-if(webrender,6-7,34741-36908) == 1523776.html 1523776-ref.html

View File

@ -548,9 +548,9 @@ class OffThreadPromiseRuntimeState {
// OffThreadPromiseTask's destructor removes them from the set.
OffThreadPromiseTaskSet live_;
// The allCancelled_ condition is waited on and notified during engine shutdown,
// communicating when all off-thread tasks in live_ are safe to be destroyed
// from the (shutting down) main thread. This condition is met when
// The allCancelled_ condition is waited on and notified during engine
// shutdown, communicating when all off-thread tasks in live_ are safe to be
// destroyed from the (shutting down) main thread. This condition is met when
// live_.count() == numCanceled_ where "canceled" means "the
// DispatchToEventLoopCallback failed after this task finished execution".
ConditionVariable allCanceled_;