The detection for EXT_direct_state_access requires entry points that depend on other extensions to be present. For example, it requires functions such as glGetNamedProgramLocalParameterIivEXT and the others added to NV_gpu_program4 to be supported. These functions are actually added to the NV_gpu_program4 extension and therefore are not expected to be present unless the implementation supports both EXT_direct_state_access and NV_gpu_program4. This causes detection to fail on AMD hardware which supports EXT_direct_state_access but not NV_gpu_program4. The following functions should not be part of the EXT_direct_state access detection mechanism:
glNamedProgramStringEXT
glNamedProgramLocalParameter4dEXT
glNamedProgramLocalParameter4dvEXT
glNamedProgramLocalParameter4fEXT
glNamedProgramLocalParameter4fvEXT
glGetNamedProgramLocalParameterdvEXT
glGetNamedProgramLocalParameterfvEXT
glGetNamedProgramivEXT
glGetNamedProgramStringEXT
glNamedProgramLocalParameters4fvEXT
glNamedProgramLocalParameterI4iEXT
glNamedProgramLocalParameterI4ivEXT
glNamedProgramLocalParametersI4ivEXT
glNamedProgramLocalParameterI4uiEXT
glNamedProgramLocalParameterI4uivEXT
glNamedProgramLocalParametersI4uivEXT
glGetNamedProgramLocalParameterIivEXT
glGetNamedProgramLocalParameterIuivEXT
These interactions are clearly documented at the end of the EXT_direct_state_access extension.
Confirming this issue.
Confirming. This problem still exists.
There were a few more functions related to double support as well.
Agreed, the intention is to make DSA work for AMD (at least) in the next release.
Bumping this to "1.9.2" category for GLEW 1.10.1 purposes.
Just debuged down the reason why I got "no" DSA with glew and found that this entry points are missing in Catalyst 13.11beta9.5:
glDisableClientStateiEXT
glEnableClientStateiEXT
glGetDoublei_vEXT
glGetFloati_vEXT
glGetNamedProgramLocalParameterIivEXT
glGetNamedProgramLocalParameterIuivEXT
glGetPointeri_vEXT
glNamedProgramLocalParameterI4iEXT
glNamedProgramLocalParameterI4ivEXT
glNamedProgramLocalParameterI4uiEXT
glNamedProgramLocalParameterI4uivEXT
glNamedProgramLocalParametersI4ivEXT
glNamedProgramLocalParametersI4uivEXT
glNamedRenderbufferStorageMultisampleCoverageEXT
I understand the ones that depend on NV extensions. But apperently AMD also does exclude the new naming of functions that exist two times with an old and a new naming. e.g. glDisableClientStateIndexedEXT and glDisableClientStateiEXT