Bug 125546

Summary: [WebGL] Check for global variable precision mismatch between vertex and fragment shaders
Product: WebKit Reporter: Roger Fong <roger_fong>
Component: WebGLAssignee: Roger Fong <roger_fong>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, buildbot, commit-queue, dino, esprehn+autocc, gyuyoung.kim, kondapallykalyan, noam, rniwa, roger_fong
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Archive of layout-test-results from webkit-cq-01 for mac-mountainlion
none
Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2
none
Patch bfulgham: review+

Roger Fong
Reported 2013-12-10 14:57:09 PST
We can now check the precisions of global variables (uniforms) between vertex and fragment shaders and make sure that they match up.
Attachments
Patch (1.63 KB, patch)
2013-12-10 15:47 PST, Roger Fong
no flags
Archive of layout-test-results from webkit-cq-01 for mac-mountainlion (469.68 KB, application/zip)
2013-12-10 16:37 PST, WebKit Commit Bot
no flags
Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2 (454.64 KB, application/zip)
2013-12-10 16:48 PST, Build Bot
no flags
Patch (5.97 KB, patch)
2013-12-10 16:54 PST, Roger Fong
bfulgham: review+
Roger Fong
Comment 1 2013-12-10 15:47:40 PST
Roger Fong
Comment 2 2013-12-10 15:47:57 PST
Brent Fulgham
Comment 3 2013-12-10 15:50:54 PST
Comment on attachment 218915 [details] Patch r=me
WebKit Commit Bot
Comment 4 2013-12-10 16:37:46 PST
Comment on attachment 218915 [details] Patch Rejecting attachment 218915 [details] from commit-queue. New failing tests: webgl/1.0.2/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html Full output: http://webkit-queues.appspot.com/results/47568065
WebKit Commit Bot
Comment 5 2013-12-10 16:37:47 PST
Created attachment 218920 [details] Archive of layout-test-results from webkit-cq-01 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the commit-queue. Bot: webkit-cq-01 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Build Bot
Comment 6 2013-12-10 16:48:18 PST
Comment on attachment 218915 [details] Patch Attachment 218915 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/45898391 New failing tests: webgl/1.0.2/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html
Build Bot
Comment 7 2013-12-10 16:48:20 PST
Created attachment 218921 [details] Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-11 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Roger Fong
Comment 8 2013-12-10 16:54:05 PST
Whoops, my bad. webkit-patch uploaded from the wrong directory :(
Roger Fong
Comment 9 2013-12-10 16:54:30 PST
Roger Fong
Comment 10 2013-12-10 16:54:56 PST
Okay, the change is a little less trivial now.
WebKit Commit Bot
Comment 11 2013-12-10 16:56:37 PST
Attachment 218923 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/platform/mac/TestExpectations', u'Source/WebCore/ChangeLog', u'Source/WebCore/html/canvas/WebGLRenderingContext.cpp', u'Source/WebCore/platform/graphics/GraphicsContext3D.h', u'Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp', '--commit-queue']" exit_code: 1 ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:330: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:339: One line control clauses should not use braces. [whitespace/braces] [4] Total errors found: 17 in 5 files If any of these errors are false positives, please file a bug against check-webkit-style.
Roger Fong
Comment 12 2013-12-10 17:06:40 PST
> ERROR: Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:339: One line control clauses should not use braces. [whitespace/braces] [4] Only the last error is accurate. Not sure what the deal with the others are.
Brent Fulgham
Comment 13 2013-12-13 12:39:40 PST
Comment on attachment 218923 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=218923&action=review r=me, but consider using "auto" and revising the loop to use prefix ++. > Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:337 > + for (ShaderSymbolMap::iterator it = vertexEntry.uniformMap.begin(); it != vertexEntry.uniformMap.end(); it.operator++()) { This could be "auto it = ..." Also, why do you need to write it.operator++? Does ++it not work? We prefer "++it" because it has a performance benefit (at least in older compilers). > Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:341 > + for (ShaderSymbolMap::iterator it = fragmentEntry.uniformMap.begin(); it != fragmentEntry.uniformMap.end(); it.operator++()) { Ditto about "auto it = ..." and operator++
Roger Fong
Comment 14 2013-12-13 15:42:22 PST
committed: http://trac.webkit.org/changeset/160567 with bfulgham's comments applied
Note You need to log in before you can comment on or make changes to this bug.