mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 05:11:16 +00:00
Merge mozilla-central to autoland. a=merge CLOSED TREE
This commit is contained in:
commit
43f7c8bef6
@ -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);
|
||||
if (renderable) {
|
||||
usage->SetRenderable();
|
||||
fua->AllowRBFormat(sizedFormat, usage);
|
||||
}
|
||||
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
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
13
gfx/tests/reftest/1523776-ref.html
Normal file
13
gfx/tests/reftest/1523776-ref.html
Normal 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>
|
12
gfx/tests/reftest/1523776.html
Normal file
12
gfx/tests/reftest/1523776.html
Normal 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>
|
@ -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
|
||||
|
@ -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_;
|
||||
|
Loading…
Reference in New Issue
Block a user