Added pglGetError to PGL library.
pglSwapBuffers returns false on a lost context or other non-recoverable error and pglGetError reports PGL_CONTEXT_LOST.
Updated demo plugins to reset their PGL contexts on context lost. Standalone plugins cannot currently recover from lost context because they don't use PGL.
Added error code to NPDeviceContext3D for lost context.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/566021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38039 0039d316-1c4b-4281-b951-d872f2087c98
Initial port of GPU process / plugin to Mac OS X. Uses new IOSurface
APIs and therefore currently runs only on 10.6. Alternate strategy
will need to be devised for 10.5.
Slight UI issues remain such as GPU plugins initially showing up in
the wrong place on the page. These will be fixed in follow-on bugs.
Minimal changes made to command buffer code to get it to compile on
Mac OS X. Commented out use of nested anonymous namespaces in
gles2_cmd_decoder.cc which were causing the linker to crash with a seg
fault.
Refactored gyp files so the OS test enabling the GPU plugin is in one
place, common.gypi, and other files test only the variable enable_gpu.
Slight change to gles2_demo_cc.cc to add some simple animation to
verify that updates from the GPU plugin are reaching the screen.
Changed Pepper test plugin to use 3D view by default and commented out
use of audio context because of recent issues.
TEST=none (ran Pepper Test Plugin with 3D view enabled)
BUG=http://crbug.com/25988
Review URL: http://codereview.chromium.org/558035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37934 0039d316-1c4b-4281-b951-d872f2087c98
in another CL. Fortunately it didn't seem to break the
build.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/568024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37892 0039d316-1c4b-4281-b951-d872f2087c98
to emluate the GLES2 glFlush and glFinish more correctly.
I don't like the fact that the GLES2CmdHelper::Finish
autogeneated from glFinish overrides
CommandBufferHelper::Finish but I'm not sure I'm feeling
like making all those functions start with gl or something
and all the fixes required just to avoid that.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/561012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37863 0039d316-1c4b-4281-b951-d872f2087c98
All status is now in the Device3D context.
It can be retreived with fewer IPC messages.
It can be now be accessed off the main plugin thread, which is necessary to run OpenGL in another thread.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/555020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37545 0039d316-1c4b-4281-b951-d872f2087c98
This is the minimal change version.
There were 3 possible solution:
#1) Remove these commands
#2) Change the command buffers so the client side
can not see the "get" pointer and therefore force
the client side to use tokens to say in sync.
It's the cleaner solution. It lets you put commands
in any shared memory thereby getting rid of the ring
buffer commands.
But, it required major changes. After going down
that path for an entire day I punted for...
#3) Implement the commands assuming there is only
one buffer the commands can be in (what is currently
called the ring_buffer). With the jump commands
available it no longer has to be used as a ring
buffer. A Pepper or NaCl app can use it however
they want but, unlike solution #2 they only get
the one buffer.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/555129
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37446 0039d316-1c4b-4281-b951-d872f2087c98
This is used for thread local pointers to the GL and PGL contexts. This unfortunate because the PGL and GL APIs do not generally explicitly reference a context. The current context is set with a call to pglMakeCurrent.
An unfortunate consequence is that now in Pepper plugins, every call to a GL function will call TlsGetValue to get the thread's current context, which could have performance issues.
I can't use base::ThreadLocalPointer because this code is compiled into an untrusted NaCl module and we don't want Chromium dependencies.
TEST=try
BUG=none
Review URL: http://codereview.chromium.org/553050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37300 0039d316-1c4b-4281-b951-d872f2087c98
1. Entry point
- standalone (main_exe.cc): Contains the main function for console applications. Instantiates and runs a window.
- pepper (main_pepper.cc): Contains NPAPI entry points. Instantiates pepper plugin object.
2. Framework that hosts demo
- standalone: Window
- pepper: Plugin
3. Demo - One demo class for all platforms. This does all the rendering and event handling.
BUG=26099
Review URL: http://codereview.chromium.org/554053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37082 0039d316-1c4b-4281-b951-d872f2087c98
This is CL 36399 that was reverted in 36969 because it caused an ICE on the official builders.
This adds a workaround for the ICE.
Review URL: http://codereview.chromium.org/546136
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37055 0039d316-1c4b-4281-b951-d872f2087c98
This is breaking official x64 builds, notified team of break earlier in the
week, but haven't seen a fix. I'm reverting now.
Please fix before re-enabling.
Original message:
This includes a way to build it with full support on x64 (and arm ?), by specifying linux_fpic=1 in GYP_DEFINES and rerunning gyp.
Review URL: http://codereview.chromium.org/551041TBR=piman@chromium.org
Review URL: http://codereview.chromium.org/548133
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36969 0039d316-1c4b-4281-b951-d872f2087c98
PS: I have not moved the repeated code to the base class for this demo because this is the last one I intend to submit before starting to port the demos to pepper. I will refactor all the demos to eliminate repeating code in light of pepper framework.
BUG=26099
TEST=Run stencil_test executable. You should see four different-colored quads.
Review URL: http://codereview.chromium.org/545092
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36410 0039d316-1c4b-4281-b951-d872f2087c98
This includes a way to build it with full support on x64 (and arm ?), by specifying linux_fpic=1 in GYP_DEFINES and re-running gyp.
Review URL: http://codereview.chromium.org/551041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36399 0039d316-1c4b-4281-b951-d872f2087c98
BUG=26099
TEST=Run texture_wrap executable. You should see three quads, each with a different texture wrapping mode.
Review URL: http://codereview.chromium.org/552012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36394 0039d316-1c4b-4281-b951-d872f2087c98
Implemented PGL library, an EGL like API for Pepper. Updated Pepper test plugin to use it.
TEST=trybots
BUG=none
Review URL: http://codereview.chromium.org/552007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36318 0039d316-1c4b-4281-b951-d872f2087c98
BUG=26099
TEST=Run simple_texture_2d executable. You should see a square with checker-board pattern.
Review URL: http://codereview.chromium.org/543063
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36267 0039d316-1c4b-4281-b951-d872f2087c98
BUG=26099
TEST=Run mip_map_2d executable. You should see two quads with checker-board pattern. The left will exhibit aliasing but right one will be anti-aliased.
Review URL: http://codereview.chromium.org/542067
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36209 0039d316-1c4b-4281-b951-d872f2087c98
in the GLES2Decoder class of command buffers.
Also fixes a few bugs related to validating buffer
access and reporting GL errors
I also separated out the id mapping, buffer tracking
and program tracking into separate classes as
different decoders will need to share instances of
those classes once we allow sharing of resources.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/546026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36178 0039d316-1c4b-4281-b951-d872f2087c98
GLES2Implementation level.
You can still call these async from a gh GLES2Helper level.
Review URL: http://codereview.chromium.org/545041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36160 0039d316-1c4b-4281-b951-d872f2087c98
- Changed client-side vertex array to VBO
- Used GL_UNSIGNED_SHORT instead of GL_UNSIGNED_INT in glDrawElements because GL_UNSIGNED_INT is not supported for by OpenGL ES 2.0 for indices
BUG=26099
TEST=Run simple_vertex_shader executable, you should see a rotating cube.
Review URL: http://codereview.chromium.org/543015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36127 0039d316-1c4b-4281-b951-d872f2087c98
BUG=26099
TEST=Try running hello_triangle executable, you should see a red triangle
Review URL: http://codereview.chromium.org/539001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35873 0039d316-1c4b-4281-b951-d872f2087c98
This is to workaround NVIDIA's broken dlsym hook.
BUG=16800
Review URL: http://codereview.chromium.org/525109
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35863 0039d316-1c4b-4281-b951-d872f2087c98