Open GoogleCodeExporter opened 9 years ago
UBO offset bindings have been clarified as required on 3.1; whether this
restriction will be applied to 3.0 is still a pending question.
Original comment by shannonw...@chromium.org
on 16 Jun 2014 at 10:57
The restriction is expected to be applied back to 3.0; see new language
published in the 3.1 specification (Table 20.46, p397):
http://www.khronos.org/registry/gles/specs/3.1/es_spec_3.1.withchanges.pdf
Original comment by shannonw...@chromium.org
on 26 Jun 2014 at 3:16
Fixing offsets is a reasonable amount of work for our current UBO
implementation.
We currently use a pretty direct mapping from GL Buffers to D3D11 Constant
Buffers. We use methods such as PSSetConstantBuffers to expose the constant
buffers to the shader.
See
http://msdn.microsoft.com/en-us/library/windows/desktop/ff476470(v=vs.85).aspx
There isn't a parameter for an offset until D3D 11.1:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh404649(v=vs.85).aspx
Using D3D11.1 is certainly an option on Windows 7 and 8. Without D3D11.1, we'd
have to use a less direct mapping from GL Buffers to D3D11 Constant Buffers,
with a bit of magic/virtualization.
Some thoughts: One GL buffer could be split into several constant buffers. Or,
we could map the buffer as a shader resource, and inside the shader decode the
offsets. Or, we could prohibit the offsets in WebGL and simply report an error
in ANGLE until we have time to re-investigate, as we do for other features we
don't easily support.
Original comment by jmad...@chromium.org
on 26 Jun 2014 at 3:45
Hi,
I would like to implement UBO offsets for D3D11.
As Jamie said, we can split the GL buffer into multiple constant buffers.
In the class Buffer11, there is already a list of multiple BufferStorage11 to
accommodate multiple usages. I can try to implement a read-only list of
subranges for constant buffers in the same way. Since constant buffers are
read-only, this seems straightforward to implement to me.
Original comment by Gregory....@imgtec.com
on 23 Mar 2015 at 4:42
Hey Gregory, we should use the new 11.1 APIs as a first line of attack. I can't
quote numbers but there are a lot of D3D11 users who can use the 11.1 device we
create in Renderer11. Does that sound reasonable? I think after that we could
follow up with a more emulative approach for older configurations.
Original comment by jmad...@chromium.org
on 23 Mar 2015 at 4:48
https://chromium-review.googlesource.com/#/c/261874
Original comment by Gregory....@imgtec.com
on 23 Mar 2015 at 7:56
Project : angle/angle
Branch : master
Author : Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
Committer: Geoff Lang <geofflang@chromium.org>
Commit : 7159ea6778eb73c233736cc2fa59ae9177b75e4b
Code-Review 0 : Gregoire Payen de La Garanderie, Jamie Madill
Code-Review +2: Geoff Lang
Verified 0 : Gregoire Payen de La Garanderie, Jamie Madill
Verified +1: Geoff Lang
Commit Queue : Chumped
Change-Id : Icfc90ed64cf94b1bab2d4cc93a8fb5e11b28d666
Reviewed-at : https://chromium-review.googlesource.com/261874
Add UBO offset support for D3D11.1.
Also fixes the uniform count upper limit in glGetActiveUniformsiv.
BUG=angleproject:507
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/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 bugdro...@chromium.org
on 30 Mar 2015 at 7:50
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 bugdro...@chromium.org
on 1 Apr 2015 at 5:34
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 bugdro...@chromium.org
on 1 Apr 2015 at 6:53
Original issue reported on code.google.com by
jmad...@chromium.org
on 31 Oct 2013 at 3:35