@@ -503,33 +503,42 @@ private void loadCapabilitiesCommon() {
503503 }
504504 }
505505
506+ if (hasExtension ("GL_OES_geometry_shader" ) || hasExtension ("GL_EXT_geometry_shader" )) {
507+ caps .add (Caps .GeometryShader );
508+ }
509+
510+ if (hasExtension ("GL_OES_tessellation_shader" ) || hasExtension ("GL_EXT_tessellation_shader" )) {
511+ caps .add (Caps .TesselationShader );
512+ }
513+
506514 if (hasExtension ("GL_ARB_shader_storage_buffer_object" )) {
507515 caps .add (Caps .ShaderStorageBufferObject );
508516 limits .put (Limits .ShaderStorageBufferObjectMaxBlockSize , getInteger (GL4 .GL_MAX_SHADER_STORAGE_BLOCK_SIZE ));
509- limits .put (Limits .ShaderStorageBufferObjectMaxComputeBlocks , getInteger (GL4 .GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS ));
510- limits .put (Limits .ShaderStorageBufferObjectMaxGeometryBlocks , getInteger (GL4 .GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS ));
517+ // Commented out until we support ComputeShaders and the ComputeShader Cap
518+ // limits.put(Limits.ShaderStorageBufferObjectMaxComputeBlocks, getInteger(GL4.GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS));
519+ if (caps .contains (Caps .GeometryShader )) {
520+ limits .put (Limits .ShaderStorageBufferObjectMaxGeometryBlocks , getInteger (GL4 .GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS ));
521+ }
511522 limits .put (Limits .ShaderStorageBufferObjectMaxFragmentBlocks , getInteger (GL4 .GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS ));
512523 limits .put (Limits .ShaderStorageBufferObjectMaxVertexBlocks , getInteger (GL4 .GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS ));
513- limits .put (Limits .ShaderStorageBufferObjectMaxTessControlBlocks , getInteger (GL4 .GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS ));
514- limits .put (Limits .ShaderStorageBufferObjectMaxTessEvaluationBlocks , getInteger (GL4 .GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS ));
524+ if (caps .contains (Caps .TesselationShader )) {
525+ limits .put (Limits .ShaderStorageBufferObjectMaxTessControlBlocks , getInteger (GL4 .GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS ));
526+ limits .put (Limits .ShaderStorageBufferObjectMaxTessEvaluationBlocks , getInteger (GL4 .GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS ));
527+ }
515528 limits .put (Limits .ShaderStorageBufferObjectMaxCombineBlocks , getInteger (GL4 .GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS ));
516529 }
517530
518531 if (hasExtension ("GL_ARB_uniform_buffer_object" )) {
519532 caps .add (Caps .UniformBufferObject );
520533 limits .put (Limits .UniformBufferObjectMaxBlockSize , getInteger (GL3 .GL_MAX_UNIFORM_BLOCK_SIZE ));
521- limits .put (Limits .UniformBufferObjectMaxGeometryBlocks , getInteger (GL3 .GL_MAX_GEOMETRY_UNIFORM_BLOCKS ));
534+ if (caps .contains (Caps .GeometryShader )) {
535+ limits .put (Limits .UniformBufferObjectMaxGeometryBlocks , getInteger (GL3 .GL_MAX_GEOMETRY_UNIFORM_BLOCKS ));
536+ }
522537 limits .put (Limits .UniformBufferObjectMaxFragmentBlocks , getInteger (GL3 .GL_MAX_FRAGMENT_UNIFORM_BLOCKS ));
523538 limits .put (Limits .UniformBufferObjectMaxVertexBlocks , getInteger (GL3 .GL_MAX_VERTEX_UNIFORM_BLOCKS ));
524539 }
525540
526- if (hasExtension ("GL_OES_geometry_shader" ) || hasExtension ("GL_EXT_geometry_shader" )) {
527- caps .add (Caps .GeometryShader );
528- }
529541
530- if (hasExtension ("GL_OES_tessellation_shader" ) || hasExtension ("GL_EXT_tessellation_shader" )) {
531- caps .add (Caps .TesselationShader );
532- }
533542
534543 if (caps .contains (Caps .OpenGL20 )){
535544 caps .add (Caps .UnpackRowLength );
0 commit comments