summaryrefslogtreecommitdiffstats
path: root/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Added EGL based GLContext.apatrick@chromium.org2010-06-0922-1374/+224
| | | | | | | | | | | | | | Python script to generate code to dynamically bind to GL functions (native GL, OSMesa, EGL or mock GL for unit tests). This replaces GLEW because GLEW doesn't bind to the GLES dialect of GL. Moved the mock GL code into app/gfx/gl. Updated the GPU code and AcceleratedSurface to use the new GL bindings. TEST=trybots BUG=none Review URL: http://codereview.chromium.org/2134006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49332 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for DrawArrays, DrawElements. Removed the checkgman@chromium.org2010-06-091-2/+5
| | | | | | | | | | | | | | | | for an invalid program. The check is already in UseProgram. If that check passes the program is "installed" at which point it, even if LinkProgram is called and fails, marking the program as invalid, the previously installed program is still in use until UseProgram is called. TEST=none BUG=none Review URL: http://codereview.chromium.org/2770007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49293 0039d316-1c4b-4281-b951-d872f2087c98
* Makes LinkProgram fail if both a vertex and fragment shadergman@chromium.org2010-06-077-31/+197
| | | | | | | | | | | | are not present. Desktop GL doesn't fail this case because the fixed function pipeline can be a substitute for either TEST=unit tests BUG=none Review URL: http://codereview.chromium.org/2582002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49073 0039d316-1c4b-4281-b951-d872f2087c98
* Get rid of DISALLOW_EVIL_CONSTRUCTORS macro usage in our code base.tfarina@chromium.org2010-06-071-4/+1
| | | | | | | | | | | TODO: Fix the remaining usages in third_party libraries and get rid of the macro in question. BUG=None TEST=trybots Review URL: http://codereview.chromium.org/2657005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49032 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor CommandBufferHelper to use Jump to loopgman@chromium.org2010-06-034-40/+75
| | | | | | | | | | | | | instead of Noop. This makes it actually work if you tell the command buffer helper to use less than the entire command buffer. TEST=modified unit tests and ran GLES2 conformance tests. BUG=NONE Review URL: http://codereview.chromium.org/2509001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48835 0039d316-1c4b-4281-b951-d872f2087c98
* Expose UpdateOffscreenFrameBufferSize from GLES2Decoder to allow Mackbr@google.com2010-06-024-2/+9
| | | | | | | | | | | | | | | port to call it during resizing. Because the Mac port does all of its rendering offscreen, the back buffer must be resized immediately rather than waiting until the next SwapBuffers call. Tested with npapi_pepper_test_plugin and GPU unit tests. BUG=45246 TEST=none Review URL: http://codereview.chromium.org/2466003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48789 0039d316-1c4b-4281-b951-d872f2087c98
* Adds tracking of number of unrenderable textures sogman@chromium.org2010-06-024-75/+183
| | | | | | | | | | | | that we can quickly decide at glDrawXXX time whether or not we have to do more work. TEST=unit tests BUG=42671 Review URL: http://codereview.chromium.org/2429005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48787 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a bunch more type changes as part of the npapi.h mergingstuartmorgan@chromium.org2010-06-022-2/+2
| | | | | | | | | | | | | This makes two types of changes - More int* -> int*_t transitions, since npapi.h switched over - Replace TRUE/FALSE, which have been removed from the upstream npapi.h. Since all our usage is C++, true/false seemed cleaner than 1/0. BUG=42645 TEST=Compiling still works Review URL: http://codereview.chromium.org/2484002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48725 0039d316-1c4b-4281-b951-d872f2087c98
* Change black to 0,0,0,1 instead of 0,0,0,0.003921gman@chromium.org2010-06-011-2/+2
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/2469003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48671 0039d316-1c4b-4281-b951-d872f2087c98
* Resubmit http://codereview.chromium.org/2096008/showgman@chromium.org2010-05-1913-85/+224
| | | | | | | | | | now that ANGLE has been updated or gcc 4.4.1 TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47721 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting again, will manually build on linux since trybots are apparently ↵gman@chromium.org2010-05-1813-224/+85
| | | | | | not up to the task >:-( git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47589 0039d316-1c4b-4281-b951-d872f2087c98
* Resubmit with fix that trybot didn't catch.gman@chromium.org2010-05-1813-85/+224
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47588 0039d316-1c4b-4281-b951-d872f2087c98
* revert last CLgman@chromium.org2010-05-1813-223/+84
| | | | | | | TBR=gman@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47579 0039d316-1c4b-4281-b951-d872f2087c98
* Update the GLSL translator code to use the correct constantsgman@chromium.org2010-05-1813-84/+223
| | | | | | | | | | | | | | and save the error log so it can be passed back through GL calls. This also links with the GLSL translator always TEST=conformance tests BUG=none Review URL: http://codereview.chromium.org/2096008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47578 0039d316-1c4b-4281-b951-d872f2087c98
* small changes for gpu to compile/build under NaCl (part 1)nfullagar@google.com2010-05-182-19/+25
| | | | | | Review URL: http://codereview.chromium.org/2087011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47542 0039d316-1c4b-4281-b951-d872f2087c98
* Enables vertex attrib 0 and assigns a buffer to itgman@chromium.org2010-05-1711-475/+992
| | | | | | | | | | | | | | | | | | | | and makes it impossible to disable. This makes most of the tests that were failing pass. The issue is OpenGL requires attrib 0 to be enabled or it doesn't render where as OpenGL ES 2.0 does not have this requirement. A bunch of the conformance tests that were failing were using only attrib 1. Since the command buffer can only render with vbos, no client side buffers, this seems like it works. TEST=a bunch more conformance tests pass BUG=none Review URL: http://codereview.chromium.org/2104004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47469 0039d316-1c4b-4281-b951-d872f2087c98
* Makes shader translation a runtime switch.gman@chromium.org2010-05-1714-113/+147
| | | | | | | | | | | | | | For WebGL the shader translation is off. For Pepper and other processes it is on. This will be removed and the tranlator will always be on at some point in the future TEST=More conformance tests pass, manually ran WebGL demos in Chrome. BUG=none Review URL: http://codereview.chromium.org/2127001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47441 0039d316-1c4b-4281-b951-d872f2087c98
* Adds support for compressed textures. DXT1 only.gman@chromium.org2010-05-1716-36/+443
| | | | | | | | | | | | | | | | | | | This is a temporary implementation. The real implementation will require *) glGetString to return "GL_EXT_texture_compression_dxt1" *) CommandBufferEnable("GL_EXT_texture_compression_dxt1") to dynamically modify the validation after it has made sure the "GL_EXT_texture_compression_dxt1" is returned from the system level GL TEST=none BUG=none Review URL: http://codereview.chromium.org/2136003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47417 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 47329 - Map RGBA4/RGB5_A1 to RGBA and RGB565 to RGB in ↵rvargas@google.com2010-05-143-33/+1
| | | | | | | | | | | RenderbufferStorage. Review URL: http://codereview.chromium.org/2119001 TBR=zmo@google.com Review URL: http://codereview.chromium.org/2074008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47334 0039d316-1c4b-4281-b951-d872f2087c98
* Map RGBA4/RGB5_A1 to RGBA and RGB565 to RGB in RenderbufferStorage.zmo@google.com2010-05-143-1/+33
| | | | | | Review URL: http://codereview.chromium.org/2119001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47329 0039d316-1c4b-4281-b951-d872f2087c98
* Landing revision 47182 again: Added dependency on ANGLE for all platforms ↵alokp@chromium.org2010-05-142-47/+22
| | | | | | | | now that it compiles on mac and linx. Also added a GYP flag 'enable_shader_translation'. To enable shader translation define env variable: GYP_DEFINES="enable_shader_translation=1". Review URL: http://codereview.chromium.org/2134002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47295 0039d316-1c4b-4281-b951-d872f2087c98
* Moved demos.gyp from windows dependency to all platforms. Excluded ↵alokp@chromium.org2010-05-141-0/+5
| | | | | | | | gpu_demo_framework_pepper from being included with wildcard demos.gyp:*. Review URL: http://codereview.chromium.org/2038015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47270 0039d316-1c4b-4281-b951-d872f2087c98
* Work around bug in gcc's name mangling causing linker to crash on Mackbr@google.com2010-05-141-3/+5
| | | | | | | | | | | | OS X. BUG=40845 TEST=none TBR=gman Review URL: http://codereview.chromium.org/2079003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47225 0039d316-1c4b-4281-b951-d872f2087c98
* Adds wrapping to support BOOL types on uniforms since some OpenGL driversgman@chromium.org2010-05-138-67/+391
| | | | | | | | | | | fail at this. TEST=conformance tests. BUG=43258 Review URL: http://codereview.chromium.org/2067002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47188 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 47182 - Added dependency on ANGLE for all platforms now that it ↵alokp@chromium.org2010-05-132-18/+50
| | | | | | | | | | | compiles on mac and linx. Also added a GYP flag 'enable_shader_translation'. To enable shader translation define env variable: enable_shader_translation=1. Review URL: http://codereview.chromium.org/1988011 TBR=alokp@chromium.org Review URL: http://codereview.chromium.org/2082004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47185 0039d316-1c4b-4281-b951-d872f2087c98
* Added dependency on ANGLE for all platforms now that it compiles on mac and ↵alokp@chromium.org2010-05-132-50/+18
| | | | | | | | linx. Also added a GYP flag 'enable_shader_translation'. To enable shader translation define env variable: enable_shader_translation=1. Review URL: http://codereview.chromium.org/1988011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47182 0039d316-1c4b-4281-b951-d872f2087c98
* Enabled gpu unit-tests on linux.alokp@chromium.org2010-05-131-20/+10
| | | | | | | | BUG=40015 TEST=GPU unit tests Review URL: http://codereview.chromium.org/2063001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47153 0039d316-1c4b-4281-b951-d872f2087c98
* Step 1: Changing CommandBufferHelper to only use a portiongman@chromium.org2010-05-1214-41/+46
| | | | | | | | | | | | | | | | | of the command buffer. This brought out the fact that there were lots of places in the code mixing size in bytes with num command buffer entries. This fixes most of those issues. No public interface uses num command buffer entries except gpu::CommandBuffer::State where it makes sense. TEST=relying on unit tests, conformance tests and chrome BUG=none Review URL: http://codereview.chromium.org/2008014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47041 0039d316-1c4b-4281-b951-d872f2087c98
* Changes the command buffer code to check that allgman@chromium.org2010-05-125-78/+228
| | | | | | | | | | | | enabled vertex attribs are valid, not just the ones the current program is using. TEST=unit tests BUG=none Review URL: http://codereview.chromium.org/2021007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47040 0039d316-1c4b-4281-b951-d872f2087c98
* update the docs for command buffers.gman@chromium.org2010-05-111-8/+12
| | | | | | | | | | There are no code changes in this CL. TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46922 0039d316-1c4b-4281-b951-d872f2087c98
* Fix typogman@chromium.org2010-05-101-1/+1
| | | | | | | | | TBR=apatrick@chromium.org TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46819 0039d316-1c4b-4281-b951-d872f2087c98
* Resubmit CL http://codereview.chromium.org/1992008/gman@google.com2010-05-0822-193/+426
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/2013010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46793 0039d316-1c4b-4281-b951-d872f2087c98
* Revert gpu CL which broke the Mac build.shess@chromium.org2010-05-0822-403/+176
| | | | | | | | | | | | | | | | | | | | Reverting change by gman@chromium.org, Fri 07 May 2010 16:35:41, r46756, original comment: This CL adds the option to support buffers that are bound to more than one target. <snip> original review URL: http://codereview.chromium.org/1992008 TBR=gman@chromium.org BUG=none TEST=Mac waterfall green Review URL: http://codereview.chromium.org/1988007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46762 0039d316-1c4b-4281-b951-d872f2087c98
* This CL adds the option to support buffers that are boundgman@chromium.org2010-05-0722-176/+403
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to more than one target. We had originally decided that this would be an disallowed. glBindBuffer(GL_ARRAY_BUFFER, some_buffer_id); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, some_buffer_id); Unfortunately the GLES2 conformance tests require this behavior. This CL makes this behavior possible but it has to be turned on because it means all buffers have to have CPU side backing (not just ELEMENT_ARRAY_BUFFERs) and it means a slowdown for dynamic vertex related stuff like skinning because an extra copy has to be made every time they are updated. So, by default it will be off but we'll come up with some way to turn it on. Al's suggestion is to use eglCreateContext with a custom intialization attribute. My #1 question: What about the name of the command, the name of the constant and the filename the constant is in. Any thoughts? TEST=none BUG=none Review URL: http://codereview.chromium.org/1992008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46756 0039d316-1c4b-4281-b951-d872f2087c98
* A few more changes for conformance tests.gman@chromium.org2010-05-0712-23/+104
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/1985006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46699 0039d316-1c4b-4281-b951-d872f2087c98
* Various fixes for the OpenGL ES 2.0 conformance tests.gman@chromium.org2010-05-0619-95/+318
| | | | | | | | | | | | | | Was failing 268 of 1198 Now failing 266 of 1198 ugh! all those changes only fixed 2 tests :-( TEST=some unit test and conformance tests. BUG=none Review URL: http://codereview.chromium.org/1942004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46572 0039d316-1c4b-4281-b951-d872f2087c98
* Fix some memory leaks in GPU tests.estade@chromium.org2010-05-044-30/+13
| | | | | | | | | BUG=42904 TEST=run the tests Review URL: http://codereview.chromium.org/1796010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46303 0039d316-1c4b-4281-b951-d872f2087c98
* Fix readpixels issuegman@chromium.org2010-05-031-1/+1
| | | | | | | | | | | will check in tests when machine is working again TBR=kbr@chromium.org TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46297 0039d316-1c4b-4281-b951-d872f2087c98
* Adds support for shared resources.gman@chromium.org2010-05-0328-98/+898
| | | | | | | | | | | | | | | | It's not clear how to test this easily it seems like we an integration test is needed at some point. I did run the conformance tests with share_resources set to true and it rand without crashing. TEST=unit tests BUG=none Review URL: http://codereview.chromium.org/1817002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46264 0039d316-1c4b-4281-b951-d872f2087c98
* Remove check for bound framebuffer for swapbuffers.gman@chromium.org2010-04-301-6/+0
| | | | | | | | | TEST=conformance tests don't crash. BUG=none Review URL: http://codereview.chromium.org/1697018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46018 0039d316-1c4b-4281-b951-d872f2087c98
* Fix Bug in RingBuffergman@chromium.org2010-04-303-16/+39
| | | | | | | | | TEST=unit test BUG=42859 Review URL: http://codereview.chromium.org/1806003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46017 0039d316-1c4b-4281-b951-d872f2087c98
* Changed angleproject to angle due to name change.alokp@chromium.org2010-04-293-9/+9
| | | | | | Review URL: http://codereview.chromium.org/1712020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45988 0039d316-1c4b-4281-b951-d872f2087c98
* Adds error messages for synthesized gl errors.gman@chromium.org2010-04-297-428/+583
| | | | | | | | | | | | | The next step would be to expose the service side once to the client but this step just adds the strings. TEST=none BUG=none Review URL: http://codereview.chromium.org/1699022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45909 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed off-by-one bug in returned name length in glGetActiveAttrib andkbr@google.com2010-04-291-2/+4
| | | | | | | | | | | glGetActiveUniform. BUG=none TEST=ran o3d-webgl tests Review URL: http://codereview.chromium.org/1748014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45905 0039d316-1c4b-4281-b951-d872f2087c98
* Changes the GLES2Implementation to use a RingBuffergman@chromium.org2010-04-286-18/+576
| | | | | | | | | | | | to manage the transfer buffer. This is significantly faster than the FencedAllocator for our purposes. TEST=some unit tests BUG=none Review URL: http://codereview.chromium.org/1796002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45844 0039d316-1c4b-4281-b951-d872f2087c98
* Added shader type to shader info.alokp@chromium.org2010-04-284-13/+30
| | | | | | Review URL: http://codereview.chromium.org/1696012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45823 0039d316-1c4b-4281-b951-d872f2087c98
* Temporarily removed references to angleproject. It will be added back when ↵alokp@chromium.org2010-04-271-7/+7
| | | | | | | | | angleproject is added. Still fighting with gclient to make it forget about previous references to angleproject. TBR=kbr@chromium.org Review URL: http://codereview.chromium.org/1739013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45746 0039d316-1c4b-4281-b951-d872f2087c98
* Add eglGetProcAddress to pgl.gman@chromium.org2010-04-274-312/+319
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/1797001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45734 0039d316-1c4b-4281-b951-d872f2087c98
* glGetProgramiv was returning incorrect values for ↵alokp@chromium.org2010-04-272-3/+6
| | | | | | | | GL_ACTIVE_UNIFORM_MAX_LENGTH and GL_ACTIVE_ATTRIBUTE_MAX_LENGTH. It was not adjusting for NULL terminator. Review URL: http://codereview.chromium.org/1750015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45732 0039d316-1c4b-4281-b951-d872f2087c98
* GPU service interprets glFinish as glFlush.apatrick@chromium.org2010-04-273-3/+7
| | | | | | | | | | | | | This is so the single threaded GPU service does not get delayed executing glFinish, which could prevent progress in rendering all other GL contexts. Instead just issue a glFlush to ensure that the pending commands will be processed in the future. From a client side perspective the semantics of glFlush and glFinish are still different. glFlush is asynchronous whereas glFinish is synchronous. The latter waits for the service to acknowledge that it has issued the glFlush. glFinish can therefore be used to synchronize multiple threads that are issuing commands to GL contexts that share a common namespace. TEST=trybots BUG=none Review URL: http://codereview.chromium.org/1719019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45724 0039d316-1c4b-4281-b951-d872f2087c98