| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Validate isGLES*() usage and definition ; Add and use ShaderCode.createExtensionDirective(..)
- Fix GLES3 Profile Mapping, i.e. GL2ES2 queries and mappings
- GLProfile: Add GL2ES2 -> ES3 mapping
- EGLContext: Reuqest major '3' for ES3
- EGLGLCapabilities/EGLGraphicsConfiguration: Consider EGLExt.EGL_OPENGL_ES3_BIT_KHR
- Validate isGLES*() usage and definition
- Fix BuildComposablePipeline's isGLES() code
- For GLSL related queries use isGLES() instead of isGLES2(),
which would exclude ES3
- Add and use ShaderCode.createExtensionDirective(..)
- Supporting creating GLSL extension directives while reusing strings from GLExtensions
- Minor cleanup of GLContextImpl.setGLFuncAvail(..)
|
| |
|
| |
|
| |
|
|
|
|
| |
Windows/ATI driver ..
|
|
|
|
|
|
| |
user to trigger backend initialization eagerly and offthread (optional, !WINDOWS)
TestPerf001GLJPanelInit02AWT compares all variations: no-gl, glcanvas, gljpanel and gljpanel-initMT (offthread)
|
|
|
|
| |
device does _not_ require locking on global shared device.
|
|
|
|
| |
for analysis.
|
|
|
|
| |
applications to not block until window becomes visible.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'choose' only and 'full' offscreen-drawable w/ context
test01ChooseOnly exposes X11/GLX perf. enhancement of 613e33ee8ffc1f2b9c5db1e1b5bb5253a159ed6d:
PRE CHANGE:
++++ UITestCase.setUp: com.jogamp.opengl.test.junit.jogl.perf.TestPerf001RawInit00NEWT - test01ChooseOnly
INIT START #0
Run: 0, count 50/50 raw:
choose 503/t 10.06/1
INIT END #0
INIT START #1
Run: 1, count 50/50 raw:
choose 384/t 7.68/1
INIT END #1
INIT START #2
Run: 2, count 50/50 raw:
choose 344/t 6.88/1
INIT END #2
POST CHANGE:
++++ UITestCase.setUp: com.jogamp.opengl.test.junit.jogl.perf.TestPerf001RawInit00NEWT - test01ChooseOnly
INIT START #0
Run: 0, count 50/50 raw:
choose 49/t 0.98/1
INIT END #0
INIT START #1
Run: 1, count 50/50 raw:
choose 43/t 0.86/1
INIT END #1
INIT START #2
Run: 2, count 50/50 raw:
choose 38/t 0.76/1
INIT END #2
|
|
|
|
|
|
|
|
|
| |
Even though the test case itself cannot show the proper initialization time,
it can be used w/ an attached profiler i.e.
Test w/ 50 X11GLXGraphicsConfigurationFactory.chooseGraphicsConfigurationFBConfig() invocations:
- pre change: 1.708 ms
- post change: 650 ms (613e33ee8ffc1f2b9c5db1e1b5bb5253a159ed6d)
|
| |
|
|
|
|
|
|
|
|
| |
unified gl- and glx-extension strings.
- HashMap is more efficient than HashSet
- No need to use sub HashSet's .. we can use global HashMap.
'Loosing' duplicate GLX entries due to GL duplicates is acceptable.
|
|
|
|
|
|
|
| |
613e33ee8ffc1f2b9c5db1e1b5bb5253a159ed6d to EGL and WGL.
Note: WGL config query is already performed as a bulk operation.
Note: OSX does not perform such queries.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
X11GLXGraphicsConfiguration.GLXFBConfig2GLCapabilities(..)
X11GLXGraphicsConfiguration.GLXFBConfig2GLCapabilities(..) ran over all FB configs and for each it grabbed
native config values separately. Fetching them in bulk mode saves around 7% of this function's cost.
Also reuse XRenderPictFormat instance for 'XRenderDirectFormat XRenderFindVisualFormat(..)' call,
saving a few NIO creation cycles w/ StructAccessor.
Biggest savior is X11GLXGraphicsConfigurationFactory.chooseGraphicsConfigurationFBConfig()'s
fast path w/o chooser and usable 1st FBConfig. Here we only issue 'GLXFBConfig2GLCapabilities(..)'
on the first valid entry.
Test w/ 50 X11GLXGraphicsConfigurationFactory.chooseGraphicsConfigurationFBConfig() invocations:
- pre change: 1.708 ms
- post change: 650 ms
Time is no spent almost solely on native glXChooseFBConfig (546ms).
|
|
|
|
| |
and let it fail there instead of within impl. class, only pass the handle - simplifies and removes redundancy.
|
|
|
|
|
|
|
| |
'Hisilicon Immersion.16')
Note: Even though Mesa Intel driver crashes w/ heavy multithreading (Bug 873),
it works well w/ our multithreaded GLMediaPlayer.
|
|
|
|
|
|
|
|
|
|
|
|
| |
multiple media textures (Android) or shared GL context are not usable.
- GLMediaPlayer:
- TEXTURE_COUNT_MIN is the new minimum: '1' - i.e. no multithreading, single threaded player
- TEXTURE_COUNT_DEFAULT is '4' - multithreaded
- GLMediaPlayerImpl:
- Add Single threaded mode, but perform initStreamImpl(..) off-thread.
-
|
|
|
|
| |
expecting exception w/ core profile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(spec doesn't mention it, and it does not show results w/ CPU sourced rendering) ; Clean up GLBuffer*Tracker
+ * Note that VAO initialization does unbind the VBO .. since otherwise they are still bound
+ * and the CPU_SRC test will fail!<br/>
+ * The OpenGL spec does not mention that unbinding a VAO will also unbind the bound VBOs
+ * during their setup.<br/>
+ * Local tests here on NV and AMD proprietary driver resulted in <i>no ourput image</i>
+ * when not unbinding said VBOs before the CPU_SRC tests.<br/>
+ * Hence Bug 692 Comment 5 is invalid, i.e. <https://jogamp.org/bugzilla/show_bug.cgi?id=692#c5>,
+ * and we should throw an exception to give users a hint!
Leaving uncommented code in GLBufferStateTracker ..
+++
- Clean up GLBuffer*Tracker
- Use final
- Use static final keyNotFound value.
|
|
|
|
|
|
|
|
|
|
| |
manually in close0()
Release NewtMacWindow manually in close0()
- Mark [NewtMacWindow setReleasedWhenClosed: NO] in init0(..)
- Release NewtMacWindow manually in close0(..)
Check pointer args in close0(..)
|
|
|
|
| |
handles before usage in NewtMacWindow (Not the culprit .. but more safe)
|
|
|
|
|
|
|
| |
use EGLDummyUpstreamSurfaceHook .. a pbuffer offscreen
fixOffscreenBitOnly(..) may yield FBO queries / chosing .. usually doesn't matter (on devices here),
but not accurate.
|
|
|
|
| |
GLCapabilitiesChooser instead of GLProfile, allowing using same or similar caps - important for sharing ctx
|
|
|
|
| |
'out of memory' and saves most of the time; Also run test exclusively.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reduce footprint for the masses.
Remove the ubuntu fonts from atomic/jogl-util-graph.jar and hence all derivated 'all' JAR files.
The Android jar files still contain the fonts as assets!
atomic/jogl-util-graph-fonts-p0.jar contains the fonts and is either referenced by:
- UbuntuFontLoader: Using class based Jar URI derivation using TempJarCache to [down]load
and extract the jar file (similar to native lib-loading).
- Explicitly via traditional classpath, see jnlp-files/jogl-applet-runner-newt-GraphTextDemo01b-napplet.html
The pack200 jogl-all.jar file is now below 1MB
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(again) on 'addNotify(..)' - GLCanvas in JtabbedPane disappear
Regression of commit e33e6374e0be0454f7e9732b5f897f84dbc3c4dc (Fix for Bug 729 and Bug 849) !
+++
JAWTWindow's HierarchyListener doesn't set component visible (again) on 'addNotify(..)'
It only renders the component invisible after removeNotify() which is performed implicit anyways ..
Case java.awt.event.HierarchyEvent.DISPLAYABILITY_CHANGED
shall perform similar as our java.awt.event.HierarchyEvent.SHOWING_CHANGED impl.
+++
Tested on Gnu/Linux X11 and OSX incl. re-test Bug 729 and Bug 849 unit tests.
|
|
|
|
| |
better unit test lookup
|
|
|
|
| |
junit.run.noui
|
|\ |
|
| |
| |
| |
| | |
point values. Derived from http://mvn.io7m.com/ieee754b16, of which I am the original author.
|
|/
|
|
| |
add println; GearsES: Add init/shared state to 'toString()'
|
|
|
|
| |
GearsObject used getGL2ES2(), which is not allowed.
|
|
|
|
| |
DEBUG output.
|
|
|
|
|
|
|
|
|
|
|
|
| |
strictMatch minor) and reuse isES; EGLContext: Use strictMatch for setGLFunctionAvailability() and handle failure; EGLDrawableFactory: Either detect ES3 or ES2.
- Cleanup branch using VersionNumber (fix 'Int' check strictMatch minor) and reuse isES
- EGLContext: Use strictMatch for setGLFunctionAvailability() and handle failure
On ES, we require strictMatch, cleanup if failing.
- EGLDrawableFactory: Either detect ES3 or ES2.
Both only available with proper EGL context creation for ES profiles (TODO)
|
|
|
|
| |
operation, throw InternalError if failing
|
|\
| |
| | |
Fix #875 - ES version should be strictly validated
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When initializing the context in GLContextImpl.setGLFuncAvailability
ES devices must be validated by strictly matching the major version,
otherwise on ES3 devices we were mixing ES1 implementation with ES3
contexts, ultimately crashing in a safeguard.
Signed-off-by: Brice Figureau <brice@daysofwonder.com>
|
| |
| |
| |
| | |
to lifecycle considerations ; GearsES2: Add glFinish() after init().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
stability constraints' ; Fixing Test cases: Enable all, GearsObject*: Check VBO
- GLSharedContextSetter API Doc: No 'Driver stability constraints'
- No driver issues ..
- Use 'Lifecycle Considerations' to describe usage issues ..
- Fixing Test cases: Enable all, GearsObject*: Check VBO
- GearsObject* needs to check whether VBO is 'still alive'
if sharing is enabled.
- Enable all unit tests.
|
| |
| |
| |
| |
| |
| | |
instance of GLArrayHandler of same type; Simplify GLArrayHandler inheritance.
Refines commit 9f2a9df0a4b7093925c8854b37fba053469a4b35
|
| |
| |
| |
| | |
field usage; GLDrawableImpl: Make read-only fields final.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refine GearsObject* GLArrayDataServer copying; GearsES*: Init VBO eagerly
Add copy-ctor to GLArrayData* w/ sliced Buffer to allow general sharing of VBO via these high-level types.
Refine GearsObject* GLArrayDataServer copying (commit bcfaa149b9803ce33c5a356cbcb45f7dfd3e4361):
Utilize new GLArrayData* copy-ctor.
GearsES*: Init VBO eagerly, allowing VBO usage after init(..).
|
| |
| |
| |
| |
| |
| |
| | |
convenience
Added:
GLAutoDrawable createDummyAutoDrawable(AbstractGraphicsDevice deviceReq, boolean createNewDevice, GLProfile glp)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
downstream.getGL*() [TraceGL* / DebugGL*] ; Simplify GLContextImpl's set Debug/Trace Pipeline
Regression of commit 0002fccdcd6383874b2813dc6bbe3e33f5f00924:
"Trace/Debug shall utilize downstream identification for isGL*() and getGL*() methods."
Using the downstream identification commit is right for the isGL*() case,
however, getGL*() returned the downstream object which makes the caller loosing the pipeline!
Instead, we shall produce !GEN_GL_IDENTITY_BY_ASSIGNABLE_CLASS:
"if( isGL<type>() ) { return this; }
throw new GLException("Not a <type> implementation");"
or for GEN_GL_IDENTITY_BY_ASSIGNABLE_CLASS:
"return this;"
|
| |
| |
| |
| | |
on GL2 ctx on OSX ; GLWindow #2 shall also use sharedDrawable; Cleanup ..
|
| |
| |
| |
| | |
glViewport(..) and dump it (Add stack trace if DEBUG)
|