Comments (6)
Hello,
the problem seems to be that the call of
globjects::VertexArray::create()
ends in glGenVertexArrays
instead of glCreateVertexArrays.
I've already set globjects's VertexArray to use the DirectStateAccess extensions.
How do you configure glbindings or globjects or both to invoke glCreateVertexArrays instead of glGenVertexArrays ?
kind regards.
from globjects.
It seems, that VertexArray::create ignores the DSA settings
VertexArrayObjectResource::VertexArrayObjectResource() : IDResource(createObject(glGenVertexArrays)) { }
kind regards,
Edit: seems to be a problem with the nvidia driver, but a dsa implementation would be nice.
from globjects.
Sorry, next post.
I had a look at the specifications to direct_state_access_arb and direct_state_access_ext.
Core DSA and EXT_DSA take different approaches to resolving this problem. In EXT_DSA, all of the DSA-style functions are permitted to take an object name that had no state data associated with it (ie: had not yet been bound). These functions were therefore required to be able to generate the default state behind those names, then perform whatever processing the function normally did.Core DSA does not do this. If you pass a new object to any of the core DSA functions, they will fail with GL_INVALID_OPERATION. Instead, the object's state must be initialized. This can be done via glBind* functions (which goes against the point of the functionality), but the preferred method is to use the glCreate* set of functions. These create object names and fill them with their initial state. Those object types which have a target that defines the type of that object (Textures and Query Objects) have this type specified by their glCreate* function.
https://www.khronos.org/opengl/wiki/Direct_State_Access
Guess this brings it to the point. Wonder if AMD/ATI drivers accept a mixture of glGenVertexArrays followed by DSA functions related to the vertex array object.
kind regards.
from globjects.
Thanks for the in-depth analysis. I can confirm that for DSA, the glCreate*
functions should get used and that within globjects, this implementation path is missing.
Problably we have to add implementation strategies for Vertex Arrays as well. And while we're at it, check other directly created objects within Resource.cpp
as well.
from globjects.
Hello,
thank you for your comment. I'm a big fan of this library.
I've implemented a strategy for the vertex arrays so far for testing. But you should consider to synchronize vao settings with the vao binding strategy. what i mean is, if you set the VAO strategy to use DSA implementations then the DSA strategy for vao bindings should be set automatically under the hood.
The VertexArray now has
static void hintAttributeImplementation(AttributeImplementation impl);
static void hintVertexArrayImplementation(VertexArrayImplementation impl);
But it should be only one method that sets the implementation strategy since the vao and binding belong together.
So far it works, but one method to change the implementation should be the goal.
I'll check the other dsa objects.
kind regards,
PonchoBob
from globjects.
Thanks for the in-depth analysis. I can confirm that for DSA, the
glCreate*
functions should get used and that within globjects, this implementation path is missing.
Problably we have to add implementation strategies for Vertex Arrays as well. And while we're at it, check other directly created objects withinResource.cpp
as well.
Hello there,
"found" some more in the resource.cpp at line number 185
IDResource(createObject(glGenSampler))
Actually glCreateSamplers is the current DSA function. But using glGenSamplers with subsequent calls to glSamplerParameter* caused no errors, so....
kind regards
from globjects.
Related Issues (20)
- remove tests structure if we have no tests
- Framebuffer::detach() : Fails for attachmentObject->isRenderBufferAttachment() HOT 1
- How to use Eigen instead of glm as base math lib HOT 11
- Question/Problem with gl::GLenum and #defines from gl.h HOT 3
- Incorrect Readme.md example HOT 1
- Fix uniform types within UniformHelper
- Add CPU-GPU synchronization checks
- Add interfaces to create multiple objects at once
- Use implementation registry to manage NamedString implementations
- question about glbindingConfig.cmake HOT 9
- operator << is ambiguous
- glbinding/gl/types.h not found along with glbinding/ContextHandle.h (Solved)
- Add the installation prefix of "glm" to CMAKE_PREFIX_PATH or set "glm_DIR" HOT 1
- Add examples using libeigen3
- Add tests using libeigen3
- Building/Linking with CPM HOT 3
- Example from the documentation on context initialization causes stack overflow
- Typo in root readme.md `Documentation` URL HOT 1
- Building globjects with GLM 0.9.9.9 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from globjects.