Closed
Bug 883478
Opened 11 years ago
Closed 11 years ago
Update ANGLE to pull from 13-08-02.
Categories
(Core :: Graphics: CanvasWebGL, defect)
Core
Graphics: CanvasWebGL
Tracking
()
RESOLVED
FIXED
mozilla26
People
(Reporter: jgilbert, Assigned: jgilbert)
References
Details
Attachments
(5 files, 2 obsolete files)
3.67 KB,
patch
|
bjacob
:
review+
|
Details | Diff | Splinter Review |
2.67 KB,
patch
|
bjacob
:
review+
|
Details | Diff | Splinter Review |
734 bytes,
patch
|
bas.schouten
:
review+
|
Details | Diff | Splinter Review |
13.19 KB,
patch
|
bjacob
:
review+
|
Details | Diff | Splinter Review |
1.63 KB,
patch
|
jgilbert
:
review+
|
Details | Diff | Splinter Review |
r2426 was tip as of Jun13.
Assignee | ||
Comment 1•11 years ago
|
||
Assignee | ||
Comment 2•11 years ago
|
||
Try to fix the GCC4.7 issue:
https://tbpl.mozilla.org/?tree=Try&rev=0d902187f521
Assignee | ||
Comment 3•11 years ago
|
||
Assignee | ||
Updated•11 years ago
|
Summary: Update ANGLE to r2426 → Update ANGLE to pull from 13-06-19.
Assignee | ||
Comment 4•11 years ago
|
||
Attachment #766199 -
Flags: review?(bjacob)
Assignee | ||
Comment 5•11 years ago
|
||
(In reply to Jeff Gilbert [:jgilbert] from comment #4)
> Created attachment 766199 [details] [diff] [review]
> patch: Use ANGLE's built-in MurmurHash3 instead of Spooky Hash for long
> ident hashing.
ANGLE includes MurmurHash3 now for something or other. We should just use it instead of including our own hash, unless there's a good reason not to.
Assignee | ||
Comment 6•11 years ago
|
||
There's another name collision in the new pull, so this fixes it. I used CamelCase instead of underscores, since the original file was capitalized.
Attachment #766200 -
Flags: review?(bjacob)
Assignee | ||
Comment 7•11 years ago
|
||
Attachment #766201 -
Flags: review?(bjacob)
Assignee | ||
Comment 8•11 years ago
|
||
Those are all the new patches I have so far.
Assignee | ||
Comment 9•11 years ago
|
||
With the exception of things which don't look like my fault, the Try run is clean save for a crash in libGLESv2.dll!glBufferData during m1. This doesn't sound like anything I touched, but hopefully it's simple enough to fix.
Assignee | ||
Comment 10•11 years ago
|
||
New try:
https://tbpl.mozilla.org/?tree=Try&showall=1&rev=3ae9274c1206
Includes fixes to work around ANGLE issue 438:
http://code.google.com/p/angleproject/issues/detail?id=438
Comment 11•11 years ago
|
||
Comment on attachment 766199 [details] [diff] [review]
patch: Use ANGLE's built-in MurmurHash3 instead of Spooky Hash for long ident hashing.
Review of attachment 766199 [details] [diff] [review]:
-----------------------------------------------------------------
r=me but IMPORTANT: remove the now-unused spooky.cpp !
::: gfx/angle/src/compiler/MapLongVariableNames.cpp
@@ +13,5 @@
> TString mapLongName(size_t id, const TString& name, bool isGlobal)
> {
> ASSERT(name.size() > MAX_SHORTENED_IDENTIFIER_SIZE);
> TStringStream stream;
> +
Trailing \w
@@ +15,5 @@
> ASSERT(name.size() > MAX_SHORTENED_IDENTIFIER_SIZE);
> TStringStream stream;
> +
> + uint64_t hash[2] = {0, 0};
> + MurmurHash3_x64_128(name.data(), name.length(), 0, (void*)hash);
You don't need to explicitly cast to void*, do you? If you had to, that would be a static_cast. C-style casts for pointers are a bit dangerous.
Attachment #766199 -
Flags: review?(bjacob) → review+
Comment 12•11 years ago
|
||
Comment on attachment 766200 [details] [diff] [review]
patch: Rename compiler/Uniform.(cpp|h) to compiler/CompilerUniform.(cpp|h)
Review of attachment 766200 [details] [diff] [review]:
-----------------------------------------------------------------
Sigh, I hope we get a build system that allows for multiple files with same leaf name, during my lifetime.
Attachment #766200 -
Flags: review?(bjacob) → review+
Comment 13•11 years ago
|
||
Comment on attachment 766201 [details] [diff] [review]
patch: Work around a GCC4.7 issue where its implicit copy constructor generates type errors.
I can't r+ this without a more specific explanation, sorry. What is that "type error"?
This is tricksy because this is a nontrivial class with many member, and although it does look like all of them are currently POD, that could change under our feet at anytime without us knowing. So it really is worth pursuing a more c++ orthodox approach.
Attachment #766201 -
Flags: review?(bjacob) → review-
Assignee | ||
Comment 14•11 years ago
|
||
Alright. This Try run should exhibit the error:
https://tbpl.mozilla.org/?tree=Try&rev=e4914e78e1e4
Assignee | ||
Comment 15•11 years ago
|
||
Huh, might be gone.
Let's try more completely:
https://tbpl.mozilla.org/?tree=Try&rev=a9a79a22c2ad
Assignee | ||
Comment 16•11 years ago
|
||
Nope, maybe a later patch removes the error? Weird. Let's just remove that patch for now.
New Try run:
https://tbpl.mozilla.org/?tree=Try&rev=fb112545dedc
Assignee | ||
Comment 17•11 years ago
|
||
Here's the error:
/usr/bin/ccache /tools/gcc-4.7.2-0moz1/bin/g++ -m32 -march=pentiumpro -o Tokenizer.o -c -I../../dist/stl_wrappers -I../../dist/system_wrappers -include /builds/slave/try-lx-d-000000000000000000000/build/config/gcc_hidden.h -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DMOZ_GLUE_IN_PROGRAM -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -DNO_NSPR_10_SUPPORT -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/include -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/include/KHR -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/src -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle -I. -I../../dist/include -I/builds/slave/try-lx-d-000000000000000000000/build/obj-firefox/dist/include/nspr -I/builds/slave/try-lx-d-000000000000000000000/build/obj-firefox/dist/include/nss -fPIC -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -std=gnu++0x -pthread -pipe -DDEBUG -D_DEBUG -DTRACING -g -Os -freorder-blocks -fno-omit-frame-pointer -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/Tokenizer.o.pp /builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/src/compiler/preprocessor/Tokenizer.cpp
BuiltInFunctionEmulator.cpp
/usr/bin/ccache /tools/gcc-4.7.2-0moz1/bin/g++ -m32 -march=pentiumpro -o BuiltInFunctionEmulator.o -c -I../../dist/stl_wrappers -I../../dist/system_wrappers -include /builds/slave/try-lx-d-000000000000000000000/build/config/gcc_hidden.h -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DMOZ_GLUE_IN_PROGRAM -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -DNO_NSPR_10_SUPPORT -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/include -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/include/KHR -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/src -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle -I. -I../../dist/include -I/builds/slave/try-lx-d-000000000000000000000/build/obj-firefox/dist/include/nspr -I/builds/slave/try-lx-d-000000000000000000000/build/obj-firefox/dist/include/nss -fPIC -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -std=gnu++0x -pthread -pipe -DDEBUG -D_DEBUG -DTRACING -g -Os -freorder-blocks -fno-omit-frame-pointer -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/BuiltInFunctionEmulator.o.pp /builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/src/compiler/BuiltInFunctionEmulator.cpp
Compiler.cpp
/usr/bin/ccache /tools/gcc-4.7.2-0moz1/bin/g++ -m32 -march=pentiumpro -o Compiler.o -c -I../../dist/stl_wrappers -I../../dist/system_wrappers -include /builds/slave/try-lx-d-000000000000000000000/build/config/gcc_hidden.h -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DMOZ_GLUE_IN_PROGRAM -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -DNO_NSPR_10_SUPPORT -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/include -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/include/KHR -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/src -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle -I. -I../../dist/include -I/builds/slave/try-lx-d-000000000000000000000/build/obj-firefox/dist/include/nspr -I/builds/slave/try-lx-d-000000000000000000000/build/obj-firefox/dist/include/nss -fPIC -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -std=gnu++0x -pthread -pipe -DDEBUG -D_DEBUG -DTRACING -g -Os -freorder-blocks -fno-omit-frame-pointer -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/Compiler.o.pp /builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/src/compiler/Compiler.cpp
compiler_debug.cpp
/usr/bin/ccache /tools/gcc-4.7.2-0moz1/bin/g++ -m32 -march=pentiumpro -o compiler_debug.o -c -I../../dist/stl_wrappers -I../../dist/system_wrappers -include /builds/slave/try-lx-d-000000000000000000000/build/config/gcc_hidden.h -DANGLE_DISABLE_TRACE -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL1 -DCOMPILER_IMPLEMENTATION -DMOZ_GLUE_IN_PROGRAM -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -DNO_NSPR_10_SUPPORT -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/include -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/include/KHR -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/src -I/builds/slave/try-lx-d-000000000000000000000/build/gfx/angle -I. -I../../dist/include -I/builds/slave/try-lx-d-000000000000000000000/build/obj-firefox/dist/include/nspr -I/builds/slave/try-lx-d-000000000000000000000/build/obj-firefox/dist/include/nss -fPIC -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wcast-align -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -std=gnu++0x -pthread -pipe -DDEBUG -D_DEBUG -DTRACING -g -Os -freorder-blocks -fno-omit-frame-pointer -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/compiler_debug.o.pp /builds/slave/try-lx-d-000000000000000000000/build/gfx/angle/src/compiler/compiler_debug.cpp
DetectCallDepth.cpp
In file included from ../../../gfx/angle/src/compiler/intermediate.h:23:0,
from ../../../gfx/angle/src/compiler/BuiltInFunctionEmulator.h:13,
from ../../../gfx/angle/src/compiler/BuiltInFunctionEmulator.cpp:7:
../../../gfx/angle/src/compiler/Types.h: In constructor 'TType::TType(TType&&)':
../../../gfx/angle/src/compiler/Types.h:93:7: error: invalid conversion from 'unsigned char:6' to 'TBasicType' [-fpermissive]
../../../gfx/angle/src/compiler/Types.h:93:7: error: invalid conversion from 'unsigned char:7' to 'TQualifier' [-fpermissive]
In file included from ../../../gfx/angle/src/compiler/BuiltInFunctionEmulator.cpp:9:0:
../../../gfx/angle/src/compiler/SymbolTable.h: In constructor 'TFunction::TFunction(TOperator)':
../../../gfx/angle/src/compiler/SymbolTable.h:135:22: note: synthesized method 'TType::TType(TType&&)' first required here
make[6]: *** [BuiltInFunctionEmulator.o] Error 1
make[6]: *** Waiting for unfinished jobs....
From:
https://tbpl.mozilla.org/php/getParsedLog.php?id=26189041&tree=Try#error0
Assignee | ||
Comment 18•11 years ago
|
||
Comment on attachment 766201 [details] [diff] [review]
patch: Work around a GCC4.7 issue where its implicit copy constructor generates type errors.
I posted the error that this patch fixes in the previous comment.
I also see that this uses tabs, so I need to fix that.
Attachment #766201 -
Flags: review- → review?(bjacob)
Assignee | ||
Comment 19•11 years ago
|
||
This was the XP bug. (really D3D9 non-Ex)
Pulling in review from Bas since this is D3D stuff.
Basically, on D3D9, ANGLE was trying to use POOL_MANAGED where it could get away with it, but uses POOL_DEFAULT everywhere on D3D9Ex and above.
Attachment #789174 -
Flags: review?(bjacob)
Attachment #789174 -
Flags: review?(bas)
Assignee | ||
Updated•11 years ago
|
Summary: Update ANGLE to pull from 13-06-19. → Update ANGLE to pull from 13-08-02.
Assignee | ||
Comment 20•11 years ago
|
||
Here's the most recent Try build, where I forgot to reinclude the TType GCC compiler workaround:
https://tbpl.mozilla.org/?tree=Try&rev=2ff687141649
Looking at this patch again, I don't love it, but do you have any suggestions?
Comment 21•11 years ago
|
||
Comment on attachment 789174 [details] [diff] [review]
patch: Use D3DPOOL_DEFAULT instead of _MANAGED
Review of attachment 789174 [details] [diff] [review]:
-----------------------------------------------------------------
Will all the surrounding code deal with this? We have to realize D3DPOOL_DEFAULT textures do -not- automatically come back when you have a system reset and can't be mapped directly. Does ANGLE deal with this correctly when -not- using a D3D9Ex device?
Attachment #789174 -
Flags: review?(bas) → review+
Assignee | ||
Comment 22•11 years ago
|
||
(In reply to Bas Schouten (:bas.schouten) from comment #21)
> Comment on attachment 789174 [details] [diff] [review]
> patch: Use D3DPOOL_DEFAULT instead of _MANAGED
>
> Review of attachment 789174 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> Will all the surrounding code deal with this? We have to realize
> D3DPOOL_DEFAULT textures do -not- automatically come back when you have a
> system reset and can't be mapped directly. Does ANGLE deal with this
> correctly when -not- using a D3D9Ex device?
We shouldn't be concerned about system reset, as in GL land, everything is considered lost after such an event. I don't think that we map them directly, since that should be a d3d9-non-ex perf improvement (not a goal), given that in d3d9ex+, we use POOL_DEFAULT.
Comment 23•11 years ago
|
||
Comment on attachment 766201 [details] [diff] [review]
patch: Work around a GCC4.7 issue where its implicit copy constructor generates type errors.
Review of attachment 766201 [details] [diff] [review]:
-----------------------------------------------------------------
Ouch... I'm afraid that my concerns expressed in comment 13 still stand. Even if this happens to be OK in the current state of the code (if none of the members of this class have nontrivial ctors) this is very prone to silently breaking at the next ANGLE update. What were the compiler errors, again, and what else could be tried?
Attachment #766201 -
Flags: review?(bjacob) → review-
Comment 24•11 years ago
|
||
Comment on attachment 789174 [details] [diff] [review]
patch: Use D3DPOOL_DEFAULT instead of _MANAGED
Review of attachment 789174 [details] [diff] [review]:
-----------------------------------------------------------------
This is solely for Bas to review, and he already r+'d. I don't have the D3D knowledge.
Attachment #789174 -
Flags: review?(bjacob)
Assignee | ||
Comment 25•11 years ago
|
||
(In reply to Benoit Jacob [:bjacob] from comment #23)
> Comment on attachment 766201 [details] [diff] [review]
> patch: Work around a GCC4.7 issue where its implicit copy constructor
> generates type errors.
>
> Review of attachment 766201 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> Ouch... I'm afraid that my concerns expressed in comment 13 still stand.
> Even if this happens to be OK in the current state of the code (if none of
> the members of this class have nontrivial ctors) this is very prone to
> silently breaking at the next ANGLE update. What were the compiler errors,
> again, and what else could be tried?
The error is in Comment 17.
Blocks: 912196
Assignee | ||
Comment 26•11 years ago
|
||
Attachment #800952 -
Flags: review?(bjacob)
Assignee | ||
Comment 27•11 years ago
|
||
Attachment #766201 -
Attachment is obsolete: true
Attachment #800953 -
Flags: review?(bjacob)
Comment 28•11 years ago
|
||
Comment on attachment 800953 [details] [diff] [review]
patch: Remove bitfield decls from class TType to work around GCC4.7 bug
Review of attachment 800953 [details] [diff] [review]:
-----------------------------------------------------------------
I thought that we had agreed that trying to remove the bitfields was dangerous as we didn't know whether ANGLE was making unsafe sizeof assumptions, and we wouldn't necessarily know if things went wrong. Also, if we do that, we have to worry about memory usage increases (there could be many 'TType's in a compiler...)
I thought that we'd just go the simpler route of doing your earlier fix but #ifdef GCC4.7 ?
::: gfx/angle/src/compiler/Types.h
@@ +160,3 @@
> void setMatrix(bool m) { matrix = m; }
>
> + bool isArray() const { return array; }
No cosmetic changes here please.
Attachment #800953 -
Flags: review?(bjacob) → review-
Updated•11 years ago
|
Attachment #800952 -
Flags: review?(bjacob) → review+
Assignee | ||
Comment 29•11 years ago
|
||
(In reply to Benoit Jacob [:bjacob] from comment #28)
> Comment on attachment 800953 [details] [diff] [review]
> patch: Remove bitfield decls from class TType to work around GCC4.7 bug
>
> Review of attachment 800953 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> I thought that we had agreed that trying to remove the bitfields was
> dangerous as we didn't know whether ANGLE was making unsafe sizeof
> assumptions, and we wouldn't necessarily know if things went wrong. Also, if
> we do that, we have to worry about memory usage increases (there could be
> many 'TType's in a compiler...)
>
> I thought that we'd just go the simpler route of doing your earlier fix but
> #ifdef GCC4.7 ?
This is the path that's being taken in the ANGLE issue:
http://code.google.com/p/angleproject/issues/detail?id=448&q=bit%20field
>
> ::: gfx/angle/src/compiler/Types.h
> @@ +160,3 @@
> > void setMatrix(bool m) { matrix = m; }
> >
> > + bool isArray() const { return array; }
>
> No cosmetic changes here please.
Alright.
Comment 30•11 years ago
|
||
Comment on attachment 800953 [details] [diff] [review]
patch: Remove bitfield decls from class TType to work around GCC4.7 bug
Review of attachment 800953 [details] [diff] [review]:
-----------------------------------------------------------------
Alright, didn't realize that this came from an upstream conversation. R+ to anything that does.
Attachment #800953 -
Flags: review- → review+
Assignee | ||
Comment 31•11 years ago
|
||
Attachment #800953 -
Attachment is obsolete: true
Attachment #800995 -
Flags: review?(bjacob)
Assignee | ||
Comment 32•11 years ago
|
||
Assignee | ||
Comment 33•11 years ago
|
||
Comment on attachment 800995 [details] [diff] [review]
patch: Remove bitfield decls from class TType to work around GCC4.7 bug
Carrying forward r+ from bjacob.
Attachment #800995 -
Flags: review?(bjacob) → review+
Assignee | ||
Comment 34•11 years ago
|
||
Comment 35•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
Comment 36•11 years ago
|
||
I started getting build failures on Windows 7 32bit for Nightly (but not Beta or Aurora) with:
c:\work\mozilla\builds\nightly\mozilla\gfx\angle\src\libGLESv2\precompiled.h(38) : fatal error C1083: Cannot open include file: 'd3dcompiler.h': No such file or directory.
I have Mozilla Build 1.8.0, June 2010 DirectX SDK installed and have D3Dcompiler.h in
C:\Program Files\Microsoft DirectX SDK (June 2010)\Include\D3Dcompiler.h
I tried with the make.py client.mk build and with mach ./build with the same results.
Assignee | ||
Comment 37•11 years ago
|
||
(In reply to Bob Clary [:bc:] from comment #36)
> I started getting build failures on Windows 7 32bit for Nightly (but not
> Beta or Aurora) with:
>
> c:\work\mozilla\builds\nightly\mozilla\gfx\angle\src\libGLESv2\precompiled.
> h(38) : fatal error C1083: Cannot open include file: 'd3dcompiler.h': No
> such file or directory.
>
> I have Mozilla Build 1.8.0, June 2010 DirectX SDK installed and have
> D3Dcompiler.h in
> C:\Program Files\Microsoft DirectX SDK (June 2010)\Include\D3Dcompiler.h
>
> I tried with the make.py client.mk build and with mach ./build with the same
> results.
Does replacing 'd3dcompiler.h' with 'D3Dcompiler.h' do anything? We changed this a while back, but it looks like June 2010 is actually D3Dcompiler.h, not d3dcompiler.h that we switched to. (though it looks like the Include folder is full of random cases) It should work anyways, since windows should be case-insensitive, but maybe it's worth a try?
Assignee | ||
Comment 38•11 years ago
|
||
Actually, let's continue this discussion in bug 914547.
You need to log in
before you can comment on or make changes to this bug.
Description
•