BlamKiwi / angleproject

Automatically exported from code.google.com/p/angleproject
Other
0 stars 0 forks source link

Crash when a uniform block is used but no UBO is bound. #962

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?

Use a shader with a uniform block but no bound UBO.

ANGLE will hit an assertion:
Program: C:\angle\src\tests\Debug_Win32\libGLESv2.dll
File: libANGLE\renderer\d3d\ProgramD3D.cpp
Line: 1143

Expression: uniformBlock && uniformBuffer

Contrary to textures, ANGLE doesn't have a default uniform buffer for handle 0.
Therefore state->getIndexedUniformBuffer(0) will return a null pointer however 
ProgramD3D::applyUniformBuffers expects that state->getIndexedUniformBuffer(0) 
will return a buffer with id 0.

Original issue reported on code.google.com by Gregory....@imgtec.com on 1 Apr 2015 at 10:40

GoogleCodeExporter commented 9 years ago
Project  : angle/angle
Branch   : master
Author   : Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
Committer: Geoff Lang <geofflang@chromium.org>
Commit   : 381f969315c0c70bacf183e58de7194f42486112

Code-Review  0 : Gregoire Payen de La Garanderie
Code-Review  +1: Jamie Madill
Code-Review  +2: Geoff Lang
Verified     0 : Geoff Lang, Jamie Madill
Verified     +1: Gregoire Payen de La Garanderie
Commit Queue   : Chumped
Change-Id      : I263b14df41d4e45a67304c1d145646398721cf0a
Reviewed-at    : https://chromium-review.googlesource.com/263412

Add UBO offset support for D3D11.1.

Also fixes the uniform count upper limit in glGetActiveUniformsiv,
as well as an assert hit with used but unbound uniform buffer.

BUG=angleproject:507
BUG=angleproject:962

src/libANGLE/Program.cpp
src/libANGLE/Program.h
src/libANGLE/State.cpp
src/libANGLE/State.h
src/libANGLE/renderer/ProgramImpl.h
src/libANGLE/renderer/d3d/ProgramD3D.cpp
src/libANGLE/renderer/d3d/ProgramD3D.h
src/libANGLE/renderer/d3d/RendererD3D.cpp
src/libANGLE/renderer/d3d/RendererD3D.h
src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
src/libANGLE/renderer/d3d/d3d11/Renderer11.h
src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h
src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
src/libANGLE/renderer/d3d/d3d9/Renderer9.h
src/libANGLE/renderer/gl/ProgramGL.cpp
src/libANGLE/renderer/gl/ProgramGL.h
src/libANGLE/validationES.cpp
src/libGLESv2/entry_points_gles_3_0.cpp
src/tests/angle_end2end_tests.gypi
src/tests/end2end_tests/UniformBufferTest.cpp
util/testfixturetypes.h

Original comment by bugdroid1@chromium.org on 1 Apr 2015 at 5:34

GoogleCodeExporter commented 9 years ago
Project  : angle/angle
Branch   : master
Author   : Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
Committer: Geoff Lang <geofflang@chromium.org>
Commit   : 68694e994103e8d2c0fbef76506cf90fbf7f70d5

Code-Review  0 : Gregoire Payen de La Garanderie
Code-Review  +2: Geoff Lang
Verified     0 : Geoff Lang
Verified     +1: Gregoire Payen de La Garanderie
Commit Queue   : Chumped
Change-Id      : I096fe1c9b4f0f398f3a638cd8311278987dfb7dc
Reviewed-at    : https://chromium-review.googlesource.com/263404

Add UBO offset support for D3D11.1.

Also fixes the uniform count upper limit in glGetActiveUniformsiv,
as well as an assert hit with used but unbound uniform buffer.

BUG=angleproject:507
BUG=angleproject:962

src/libANGLE/Program.cpp
src/libANGLE/Program.h
src/libANGLE/State.cpp
src/libANGLE/State.h
src/libANGLE/renderer/ProgramImpl.h
src/libANGLE/renderer/d3d/ProgramD3D.cpp
src/libANGLE/renderer/d3d/ProgramD3D.h
src/libANGLE/renderer/d3d/RendererD3D.cpp
src/libANGLE/renderer/d3d/RendererD3D.h
src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
src/libANGLE/renderer/d3d/d3d11/Renderer11.h
src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h
src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
src/libANGLE/renderer/d3d/d3d9/Renderer9.h
src/libANGLE/renderer/gl/ProgramGL.cpp
src/libANGLE/renderer/gl/ProgramGL.h
src/libANGLE/validationES.cpp
src/libGLESv2/entry_points_gles_3_0.cpp
src/tests/angle_end2end_tests.gypi
src/tests/end2end_tests/UniformBufferTest.cpp
util/testfixturetypes.h

Original comment by bugdroid1@chromium.org on 1 Apr 2015 at 6:53

GoogleCodeExporter commented 9 years ago

Original comment by geofflang@chromium.org on 29 Apr 2015 at 6:48