Bug 1135 - Support EGL 1.5 , ES 3.1 and GL 4.5 (Update to latest version)
Summary: Support EGL 1.5 , ES 3.1 and GL 4.5 (Update to latest version)
Status: RESOLVED FIXED
Alias: None
Product: Jogl
Classification: JogAmp
Component: opengl (show other bugs)
Version: 2.3.2
Hardware: All all
: --- enhancement
Assignee: Sven Gothel
URL:
Depends on: 1134 1144
Blocks:
  Show dependency treegraph
 
Reported: 2015-02-26 02:50 CET by Sven Gothel
Modified: 2015-09-27 01:11 CEST (History)
0 users

See Also:
Type: ---
SCM Refs:
6b05c6919f3df20ce0b55d5ac7dda7b14068568e 47713518e3317b2621ee7ff1bbf8223fbce7fdc4 0674a3678d747335ad36f0f57e3bdc9c168f0dcf 0d59bd4c655ef9a27f127000848aae7f07f240ae 79f04cfdacef8eda2efb83e6f769bc87b3dd748d 2d11a8f4f94947b2f478aea82d33c6934b90aafc 807c86913b465ce6071bc1af7ba6f8620cd5e772 eced1d4e45772a862d649e3cd7b500c6bc1643a1 27ebb38b9ffd3cc8f4ee3b97509b0f32ef2680aa 23f7addf6eefde27efe7e47c320ad31b7f81dc2c 6e8683336a0885a45e57d0bcb6c05a36c5ebe81e 99d37df6cf410117cb8d49774ef7550bcf847c7b cd92c17175db0c3a3a04b5b327cfcb887bf8a7d7 68391b118e93170c568edc21edad7f6b0c1f97a3 a622ffbced14e1e2fe797c82fc62c431ffb6949f 99f14475993d127f1b927056b309477753563a02
Workaround: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2015-02-26 02:50:18 CET
- Update all related khronos headers

- Attempt to perform minimalistic header changes (-> Bug 1134)

- Commit new vanilla headers and patch them in subsequent commit
  to document our changes.
Comment 1 Sven Gothel 2015-03-06 11:29:21 CET
6b05c6919f3df20ce0b55d5ac7dda7b14068568e
  Update header to latest version

47713518e3317b2621ee7ff1bbf8223fbce7fdc4
a554616fae30facd7574679b5c8b244757b7ccd9
  Minimal patch of vanilla GL headers

0674a3678d747335ad36f0f57e3bdc9c168f0dcf
  Fix other GL header and windows-system header

0d59bd4c655ef9a27f127000848aae7f07f240ae
  Change all GlueGen config files

79f04cfdacef8eda2efb83e6f769bc87b3dd748d
  - Add supplemental (overriding) GL header, 
  - fixing collisions of certain extensions

2d11a8f4f94947b2f478aea82d33c6934b90aafc
  - BuildStaticGLInfo fix
  - GLConfiguration Changes  
  - Sync w/ GlueGen commit 5f66fafec303de7d7904a499fefb8e3d023b61ae

807c86913b465ce6071bc1af7ba6f8620cd5e772
  - Remove GL_NV_vertex_array_range extension support in GLContext

eced1d4e45772a862d649e3cd7b500c6bc1643a1
  - GL/GLContext: Add isGLES31Compatible()

27ebb38b9ffd3cc8f4ee3b97509b0f32ef2680aa
  - Fix native code Warning

23f7addf6eefde27efe7e47c320ad31b7f81dc2c
  - Class ownership change of static GL enumerates
  - GLBufferStateTracker now also supports GL4.GL_QUERY_BUFFER

6e8683336a0885a45e57d0bcb6c05a36c5ebe81e
  - Bump to oculusvr-sdk cleanup
Comment 2 Sven Gothel 2015-03-06 11:30:54 CET
TODO:
  - Validate GL profile sets
  - Memory tracker: There is a FIXME regarding GL 4.4 .. IMHO
  - Add compute shader support in shader utils?
  - ???
Comment 3 Sven Gothel 2015-03-09 10:41:34 CET
99d37df6cf410117cb8d49774ef7550bcf847c7b

(Re-)Include GL header for in generated native code, allowing 'ProcAddrTypedef' validation

    Include GL header for in generated native code,
    since we need the public 'ProcAddrTypedef' to be validated
    against the GlueGen generated variant by the c-compiler.
    
    The 'ProcAddrTypedef' validation semantic has been
    introduced in GlueGen w/ commit 10060b091b76bee35246c5165d49ab546ebc4e37.
    
    Originally the GL header were always included,
    however, JOGL commit 0d59bd4c655ef9a27f127000848aae7f07f240ae
    removed the inclusion to simplify handling GL extension collisions
    mitigated via gl*-supplement.h. The latter produces 'redefine'
    errors via c-compiler.
    
    The 'redefine' issue above is resolved
    by conditional code (#ifdef __GLUEGEN__ ..)
    in glext-supplement.h.
Comment 4 Sven Gothel 2015-03-09 19:30:22 CET
(In reply to comment #2)
> TODO:
>   - Validate GL profile sets
OK

>   - Memory tracker: There is a FIXME regarding GL 4.4 .. IMHO
gl-impl-CustomJavaCode-gl4bc.java:

Prepared code exists for
  - glBufferStorage  (GL 4.4)

Following shall be handles as well:
- glNamedBufferStorage (GL 4.5)
- glNamedBufferStorageEXT (GL_EXT_direct_state_access)

Glancing over the other tracked buffer mapper,
the GL_EXT_direct_state_access are covered,
but not the GL 4.5 DSA variants.
Will do this tomorrow for release 2.3.0!

>   - Add compute shader support in shader utils?
I will copy/paste demo code w/ appropriate license to test,
either before 2.3.0 tomorrow or afterwards.
No blocker.
Comment 5 Sven Gothel 2015-03-10 08:12:45 CET
(In reply to comment #4)
> Prepared code exists for
>   - glBufferStorage  (GL 4.4)
> 
> Following shall be handles as well:
> - glNamedBufferStorage (GL 4.5)
> - glNamedBufferStorageEXT (GL_EXT_direct_state_access)
> 
> Glancing over the other tracked buffer mapper,
> the GL_EXT_direct_state_access are covered,
> but not the GL 4.5 DSA variants.
> Will do this tomorrow for release 2.3.0!

Use GlueGen 'DelegateImplementation' Bug 1144.
Comment 6 Sven Gothel 2015-03-11 18:45:28 CET
cd92c17175db0c3a3a04b5b327cfcb887bf8a7d7
Bump [html] doc to include GL 4.5, ES 3.1 and EGL [ 1.0 .. 1.5 ]

68391b118e93170c568edc21edad7f6b0c1f97a3

Complete GLBufferObjectTracker for GL 4.5 using GlueGen's DelegateImplementation/ReturnsOpaque (Bug 1144)
    
Using GlueGen's new DelegateImplementation/ReturnsOpaque feature (Bug 1144)
allows us to drop manually C implementation stubs, while simply delegating
into the renamed private generated variant using the manual stub.
    
Completed glBufferStorage and glNamedBufferStorage for GL 4.4
while subsuming DSA's of GL 4.5 and GL_EXT_direct_state_access
(only the single functions, otherwise extension is not compatible).

a622ffbced14e1e2fe797c82fc62c431ffb6949f

GLBufferObjectTracker for GL 4.5: Separate GL 4.5 DSA and GL_EXT_direct_state_access
    
We cannot subsume/rename even parts of GL_EXT_direct_state_access,
since it is explcit stated in the spec that no assumption
shall be made in regards compatibility and interaction.
Hence we add both, GL 4.5 DSA and GL_EXT_direct_state_access.
Comment 7 Sven Gothel 2015-03-11 20:49:34 CET
99f14475993d127f1b927056b309477753563a02

    Resolve RenameJavaSymbol issues (GLUgl2 and CGL) using GLEmitter (-> DelegateImplementation) due to new GlueGen Semantics
    
    GlueGen would usually use the original native C method name
    for proc-address or direct call.
    
    GLEmitter however uses the renamed method name,
    assuming it is shorter and resulted from a 'RenameExtensionIntoCore' directive.
    
    GLUgl2 native usage was broken since 2.2.4
    
    GLUgl2 and CGL use RenameJavaSymbol w/ the intention of delegation,
    hence resolve the issue using the new DelegateImplementation directive
    which preserves the original function name for the native call.