src/libGLESv2


Log

Author Commit Date CI Message
daniel@transgaming.com 72b9e18c 2011-04-13T14:58:33 Optimized prepareVertexData and protect against NULL pointers. TRAC #14871 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@614 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 09c2c1ac 2011-04-13T14:57:16 Move the vertex declaration cache to a helper class. TRAC #14871 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@613 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com baa7451e 2011-04-13T14:56:47 Eliminate lookupAttributeMapping. TRAC #14871 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@612 736b8ea6-26fd-11df-bfd4-992fa37f6226
jbauman@chromium.org 2cec2f3a 2011-04-06T18:59:51 Profiling shows that creating and destroying vertex declarations is extremely expensive, so we can keep a 16-element cache around to speed that up. BUG= TEST=JSGameBench Review URL: http://codereview.appspot.com/4358051 git-svn-id: https://angleproject.googlecode.com/svn/trunk@609 736b8ea6-26fd-11df-bfd4-992fa37f6226
jbauman@chromium.org ae345807 2011-03-30T22:04:25 Add support for eglBindTexImage and eglReleaseTexImage With this patch we can bind pbuffers as textures. Once we add support for using a sharing handle to create a pbuffer we can use this to allow us to use it as a texture as well. BUG=129 TEST=modified Simple_Texture2D works Review URL: http://codereview.appspot.com/4291066/ git-svn-id: https://angleproject.googlecode.com/svn/trunk@604 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com b627699f 2011-03-29T00:58:18 Use D3DX to copy between renderable texture surfaces. TRAC #16118 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@598 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 549bdefe 2011-03-29T00:57:01 Retrieve the D3D texture format per image. TRAC #16118 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@597 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com d976b584 2011-03-29T00:56:20 Consistently use the virtual keyword on virtual overloaded methods. TRAC #16118 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@596 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com db7cd0b2 2011-03-29T00:55:31 Fix Visual C++ linking in stand-alone project TRAC #16118 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@595 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 2a5645f7 2011-03-24T21:36:51 Fix a typo in r592. (I developped on Windows and typed in on Mac and submit). BUG=135 TEST=build fine TBR=kbr@chromium.org Review URL: http://codereview.appspot.com/4285066 git-svn-id: https://angleproject.googlecode.com/svn/trunk@593 736b8ea6-26fd-11df-bfd4-992fa37f6226
zmo@google.com 53d73e04 2011-03-24T21:27:57 glGetProgramiv(GL_ACTIVE_UNIFORM_MAX_LENGTH) should count an extra 3 if uniform is an array because "[0]" is appended. BUG=135 TEST=the attached htm in the bug runs ok Review URL: http://codereview.appspot.com/4287077 git-svn-id: https://angleproject.googlecode.com/svn/trunk@592 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 8ea5afef 2011-03-23T20:44:36 Switched to D3D10 shader compiler. I figured out how to call in to D3DCompiler_xx.dll and still get the ID3DXConstantTable metadata used by ANGLE. There are more optimization levels available with this compiler and the lowest level (0) allows MetaTunnel and MandelBox to compile their shaders quickly. MetaTunnel still does not render correctly unfortunately. I benchmarked eight of the ShaderToy demos and did not notice any performance regression on an nVidia Quadro FX 380. Intel might be adversely affected. I built ANGLE against D3DCompiler_43.dll, while Chrome still ships with 42. I'm not sure if that will make a difference but I'll rev Chrome soon. I also checked WebGL Aquarium and ran the WebGL conformance tests. This will also let me roll r590 into Chromium. It turns out the ForceSymbolReferences setting I added to the libGLESv2 target caused the linker to sometimes crash when making changes and the changes between r577 and r590 consistently lead to a crash. libGLESv2 now has a hard dependency on D3DCompiler_xx.dll via the call in Program.cpp and this seems to not make the linker crash. Review URL: http://codereview.appspot.com/4275063 git-svn-id: https://angleproject.googlecode.com/svn/trunk@591 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com a06aa870 2011-03-21T17:22:21 Track dirty texture parameters and images separately. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@590 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com a9eb5dac 2011-03-21T16:39:16 Track texture serials instead of id's. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@589 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 38e76e53 2011-03-21T16:39:10 Keep track of applied textures and dirty state to minimize D3D calls. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@588 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 51887316 2011-03-21T16:39:03 Fix checking for floating-point render target texture support. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@587 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com f4e36037 2011-03-21T16:38:59 Copy texture data of incomplete textures to the image arrays. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@586 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 94a4f03f 2011-03-21T16:38:55 Retrieve current texture properties from the image array to avoid D3D call. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@585 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 6120820e 2011-03-21T16:38:50 Retrieve texture width, height and type from the top-level image. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@584 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com b5a3a6b6 2011-03-21T16:38:46 Texture image refactoring. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@583 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com c50edcb2 2011-03-21T16:38:40 Remove redundant dirtyImageData() check. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@582 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 0bd22bc9 2011-03-21T16:38:26 Check image type in texture completeness test. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@581 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 8a0a2db7 2011-03-21T16:38:20 InternalFormat and format are the same. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@580 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com aed1832d 2011-03-21T16:38:13 Fix dirty texture state management. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@579 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 68076a07 2011-03-21T16:38:09 Eliminate the weak base texture pointer. TRAC #15703 Issue=86 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@578 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 831fe2af 2011-03-17T18:44:29 Fixed framebuffer-object-attachment WebGL conformance test. We updated it with WebGL conformance test r14153 to exercise zero-size FBO attachments, which failed with ANGLE. The new conformance test passes with OpenGL and Mesa. See this Chromium bug: http://code.google.com/p/chromium/issues/detail?id=75666 D3D fails if you try to create a zero size depth buffer but OpenGL ES2 allows it. D3D / drivers seem to sometimes crash rather than fail normally, though this might just be because some users have enabled the D3D debug runtime and break on error and we're getting the reports. It was also returning unexpected results when calling GetRenderbufferParameter for parameters that do not apply to a particular buffer. For example, RED_SIZE for a zero sized depth buffer should be 0. Tested by running WebGL conformance test with retail D3D runtime (passes) and debug D3D runtime (passes and does not assert in D3D or ANGLE). Review URL: http://codereview.appspot.com/4284053 git-svn-id: https://angleproject.googlecode.com/svn/trunk@577 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 8fd34bd6 2011-02-18T02:52:14 Move geometry files. TRAC #15649 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@564 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 11dd5dda 2011-02-11T13:28:14 Fix varying packing. TRAC #15550 Issue=111 Fix by Ranger Harke Signed-off-by: Daniel Koch git-svn-id: https://angleproject.googlecode.com/svn/trunk@561 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 97750022 2011-02-11T13:23:13 Fix varying relinking. TRAC #15527 Issue=100 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@560 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 1615be20 2011-02-09T16:30:06 Fix anti-aliased clears. TRAC #15445 Issue=82 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@556 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com d2fd4f2a 2011-02-01T18:49:11 Fix FBO/Texture/renderbuffer class hierarchy issues TRAC #14744 Issue=51/52 Delegated format queries to RenderbufferStorage. Eliminated TextureColorbufferProxy by merging it into Colorbuffer. Abstracted texture colorbuffer queries. Moved some conversion functions to the right namespace. Fixed line-endings in Texture.cpp Signed-off-by: Daniel Koch Author: Nicolas Capens <nicolas@transgaming.com> git-svn-id: https://angleproject.googlecode.com/svn/trunk@553 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 9f300b0f 2011-01-31T20:36:48 Fixed commitRect so it correctly flips the source rectangle and dest point on Y. Review URL: http://codereview.appspot.com/4047050 git-svn-id: https://angleproject.googlecode.com/svn/trunk@551 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 0f4cefe9 2011-01-26T19:30:57 Map D3D calls and HLSL shaders back to GLES2 calls and GLSL ES shaders in PIX. This makes debugging and profiling using PIX a lot more convenient. The top level of events are the GLES calls with their arguments. Those can be expanded to see the D3D calls that were issued for a particular GLES call. When PIX is attached, the shaders are saved out to temporary files and referenced from the translated HLSL shaders via #line directives. This enabled source level debugging of the original GLSL from PIX for pixel and vertex shaders. The HLSL is also saved to a temporary file so that intrinsic functions like texture2D can be stepped into. It also avoids creating a text file in the current working directory, which has continued to be an issue. I made the dependency on d3d9.dll static again so it can be accessed by GetModuleHandle witihin DllMain. I added an EVENT macro that issues D3DPERF_BeginEvent and D3DPERF_EndEvent around a C++ block. I replaced TRACE with EVENT for all the entry points. I removed the tracing of shader source since the source is visible in PIX. The means by which the filename of the temporary shader file is passed into the shader compiler is a little clunky. I did it that way to avoid changing the function signatures and breaking folks using the translator. I plan to make the compiler respect #pragma optimize so that optimization can be disabled for debugging purposes. For now it just disables shader optimization in debug builds of ANGLE. Review URL: http://codereview.appspot.com/3945043 git-svn-id: https://angleproject.googlecode.com/svn/trunk@541 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com a0ce7e61 2011-01-25T14:47:16 Added version info resources. TRAC #15181 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@539 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org da4d0494 2011-01-22T00:16:10 Fixed gl_PointCoord Y coordinate. I forgot to flip (or rather unflip) the Y coord in r536. Tested particle system sample and ran conformance tests. All conformance tests passed. Review URL: http://codereview.appspot.com/4093043 git-svn-id: https://angleproject.googlecode.com/svn/trunk@537 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org b31f532d 2011-01-19T19:02:52 All surfaces follow D3D Y convention, i.e. (0, 0) is "top-left" rather than GL's "bottom-left". This eliminates the need to flip the default FBO to the D3D convention using additional blits when presenting and reduces VRAM usage for redundant window sized surfaces. I took out the gl_Position.y flip from the vertex shader so FBOs are rendered according to D3D conventions. Texture lookups are flipped on Y to compensate. Cube map +Y and -Y faces are swapped. Y is now flipped in various other places, including uploading and reading back texture data from / to system memory, functions that take pixel space coordinates, winding order for culling, the implementation of ddy, the calculation of gl_Position and gl_FragCoord in fragment shaders and the flipping of compressed texture tiles. Review URL: http://codereview.appspot.com/3265041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@536 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 1fe96c9a 2011-01-14T15:08:44 add glRenderbufferStorageMultisampleANGLE support to glGetProcAddress Trac #15095 Signed-off-by: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@533 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 3aba7337 2011-01-14T15:08:35 BlitFramebuf: reuse local size variables Trac #15095 Signed-off-by: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@532 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ddcd7378 2011-01-08T05:46:33 Re-implemented line loop support. TRAC #14870 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@530 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ee04e455 2011-01-08T05:46:27 Create dynamic buffers in the default pool. TRAC #14889 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@529 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 5ee2ad08 2011-01-08T05:46:20 Optimized non-static usage of static buffers. Validate buffer pointers. TRAC #14889 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@528 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 37b141e2 2011-01-08T05:46:13 Create buffers in the managed pool on Windows XP. TRAC #14888 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@527 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 83921386 2011-01-08T05:46:00 rewrite buffers implementation to support static buffers more efficiently Bug=89 Trac #13565 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@526 736b8ea6-26fd-11df-bfd4-992fa37f6226
baustin@google.com ad5df071 2011-01-06T21:07:46 Fix for loading L/LA images into a native (8/16-bit) D3D surface. Review URL: http://codereview.appspot.com/3805044 git-svn-id: https://angleproject.googlecode.com/svn/trunk@523 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 17767ceb 2010-12-17T15:57:41 Implemented copying from A1R5G5B5 to L8 and A8L8. Fixed the copying range. TRAC #14885 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@515 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com a41e6e3a 2010-12-15T15:45:30 Fix support for arrays of sampler uniforms. TRAC #14840 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@510 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com eea70793 2010-12-15T15:44:59 Fix querying active attributes. TRAC #14849 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@509 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 41b2fbdd 2010-12-13T18:27:12 Fix support for arrays of samplers. TRAC #14840 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@507 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 7ea933f5 2010-12-12T08:52:42 Fix potential sscanf overflows in Shader.cpp Issue=76 Contributed by ddefrostt git-svn-id: https://angleproject.googlecode.com/svn/trunk@500 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 458da14d 2010-11-28T02:03:02 Increase the number of fragment uniform vectors. TRAC #14504 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@497 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 265f4507 2010-11-28T02:02:58 Increase the number of vertex uniform vectors. TRAC #14504 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@496 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 3175496d 2010-11-28T02:02:52 Implement gl_DepthRange using a single uniform vector. TRAC #14504 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@495 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ce9952c5 2010-11-28T02:02:47 Increase the number of supported vertex attributes. TRAC #14504 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@494 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 396c643d 2010-11-26T16:26:12 Increase the number of varying vectors to 10 on Shader Model 3.0 devices. TRAC #14503 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@492 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 9d1c9b4b 2010-11-23T22:05:41 glGenerateMipmap now does not force textures to become render targets. For textures that are not already render targets, use the CPU to filter them and mark them as dirty. I tested it by modifying the "mip_map_2d" demo to call glGenerateMipmap instead of generating the mipmaps itself. I also used the debugger to force it to take the render target path and verified that it still worked. We've been having problems with the display being reset when video memory pressure is heavy with one of our demos. This patch made a noticable improvement on Vista but I don't think it will necessarily help on XP. Review URL: http://codereview.appspot.com/3262041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@490 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com a5a8a0ad 2010-11-19T14:55:32 Fix active texture handling. TRAC #14429 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@488 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ce864420 2010-11-18T13:16:49 Add an array index to arrays of structures. TRAC #13625 This patch ensures that (member variables of) arrays of structures are listed separately by glGetActiveUniforms(). Their location can also be retrieved individually with glGetUniformLocation() using the array operator. Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@487 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 996675c6 2010-11-17T13:06:29 Fixed skipping over internal uniforms in getActiveUniform. TRAC #14390 Signed-off-by: Daniel Koch git-svn-id: https://angleproject.googlecode.com/svn/trunk@483 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 9c857952 2010-11-16T18:27:58 Made GL_RGB textures map to D3DFMT_X8R8G8B8. I suspect there is a subtle reason why this is the wrong thing to do. The issue I am trying to address is glBlitFramebufferANGLE generating an error when bliting from a GL_RGB8_OES renderbuffer to a GL_RGB texture bound to the read framebuffer and draw framebuffer respectively. It verifies that both surfaces have the same underlying D3DFMT but GL_RGB8_OES renderbuffers are backed by X8R8G8B8 and GL_RGB textures were previously backed by A8R8G8B8. Since textures cannot as far as I know be created GL_RGB8_OES, it would be useful to have a way to blit from a GL_RGB8_OES renderbuffer to a GL_RGB texture. Review URL: http://codereview.appspot.com/2822041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@481 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org f99fbb77 2010-11-16T01:57:05 Check that IDirect3DVertexBuffer9 and IDirect3DIndexBuffer9::Lock succeed. I've been seeing crashes like this on Windows XP: 0x013319aa [libglesv2.dll - memcpy.asm:188] memcpy 0x0130989a [libglesv2.dll - vertexdatamanager.cpp:164] gl::VertexDataManager::preRenderValidate(int,int,gl::TranslatedAttribute *) 0x01304f66 [libglesv2.dll - context.cpp:1996] gl::Context::applyVertexBuffer(unsigned int,int,int,bool *,gl::TranslatedIndexData *) 0x013061a7 [libglesv2.dll - context.cpp:2648] gl::Context::drawArrays(unsigned int,int,int) 0x012f7721 [libglesv2.dll - libglesv2.cpp:1741] glDrawArrays 0x01c54f1e [chrome.dll - gles2_cmd_decoder.cc:3179] gpu::gles2::GLES2DecoderImpl::DoDrawArrays(unsigned int,int,int) 0x01c59122 [chrome.dll - gles2_cmd_decoder_autogen.h:640] gpu::gles2::GLES2DecoderImpl::HandleDrawArrays(unsigned int,gpu::gles2::DrawArrays const &) Review URL: http://codereview.appspot.com/3043042 git-svn-id: https://angleproject.googlecode.com/svn/trunk@480 736b8ea6-26fd-11df-bfd4-992fa37f6226
kbr@chromium.org 72d58c4c 2010-11-05T22:55:28 Fixed gl_FragCoord emulation for point sprites of size > 1 using VPOS semantic for x and y coordinates rather than previous per-vertex emulation when running on Shader Model 3. Verified fix in Chromium with test case from bug. BUG=http://code.google.com/p/angleproject/issues/detail?id=71 TEST=test case from bug TBR=nicolas (LGTM'd by dgkoch) Review URL: http://codereview.appspot.com/2921041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@473 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 74d760bc 2010-11-03T12:27:18 Preserve the scissor and viewport rectangles on swap and blit TRAC #14054 The SetRenderTarget calls used in Blit::boxFilter() and Surface::swap() implicitly reset the scissor and viewport rectangles. So we need to ensure that the original rectangles get captured, and restored afterwards (the Context only keeps track of explicitly changed state). Signed-off-by: Daniel Koch git-svn-id: https://angleproject.googlecode.com/svn/trunk@472 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 9d7fc1db 2010-10-27T15:49:42 Add missing break statements to Context::getBooleanv Trac #14114 Reported in Bug=69 Signed-off-by: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@467 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com fe5141ea 2010-10-18T12:18:12 Support copying R5G6B5 to L8. TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@463 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com dd438af8 2010-10-18T12:18:06 Removed an unnecessary call. TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@462 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 4c5142c6 2010-10-15T17:58:27 Implemented glCopyTex[Sub]Image for non-renderable formats. TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@461 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 73a5db67 2010-10-15T17:58:13 Initialize renderbuffer variables. Make serials constant. Removed X1R5G5B5 support. TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@460 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 3f85fbbc 2010-10-15T17:58:05 Validate glCopyTex[Sub]Image source and destination format combinations. TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@459 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com edc19189 2010-10-15T17:57:55 Validate framebuffer attachment formats. TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@458 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com b6b2e677 2010-10-15T17:57:47 Disallow rendering to L/LA textures. TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@457 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 11cb68cb 2010-10-15T17:57:40 Create and load L/LA textures. TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@456 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com ed828e5b 2010-10-15T17:57:30 Detect L8 and A8L8 texture support. TRAC #13792 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@455 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 5d752f29 2010-10-07T13:37:20 Add proper detection for maximum texture and renderbuffer size Trac #13849 Increased the maximum possible texture & renderbuffer size to 16384 (the minimum required for DX11 cards). Limit the actual maximum texture & renderbuffer size to the maximum that it reported by the underlying D3D9 device. Note that creating textures and renderbuffers at the maximum size will quickly exhaust video memory! Signed-off-by: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@447 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org b2bdd06c 2010-10-05T02:24:30 Fixed NULL dereference in glClear. 6 crashes on Windows XP 1 crash on Windows 7 This was Canary 7.0.530.0 using ANGLE r429. 0x011f523b [libGLESv2.dll - context.cpp:2412] gl::Context::clear(unsigned int) 0x011e5f41 [libGLESv2.dll - libglesv2.cpp:611] glClear 0x020c400d [chrome.dll - gl_context.cc:33] gfx::GLContext::InitializeCommon() 0x020bb757 [chrome.dll - gl_context_egl.cc:138] gfx::NativeViewEGLContext::Initialize() 0x020b8946 [chrome.dll - gl_context_win.cc:502] gfx::GLContext::CreateViewGLContext(HWND__ *,bool) 0x01c4f6f8 [chrome.dll - gpu_processor_win.cc:35] gpu::GPUProcessor::Initialize(HWND__ *,gfx::Size const &,gpu::GPUProcessor *,unsigned int) 0x01d6e669 [chrome.dll - gpu_command_buffer_stub.cc:88] GpuCommandBufferStub::OnInitialize(int,void * *) It's crashing upon creation of the GL context, possibly the first context. Device lost would possibly explain the XP crashes. The Windows 7 box might have run out of video memory. I also checked another couple of NULL dereference crashes. Review URL: http://codereview.appspot.com/2197046 git-svn-id: https://angleproject.googlecode.com/svn/trunk@444 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 4888ceb6 2010-10-01T21:13:12 Made the API of shader translator library consistent. - We recently started using OpenGL-type enums. This CL makes all old enums consistent with the new scheme. - Renamed TBuiltInResource to ShBuiltInResources to have a consistent prefix BUG=46 Review URL: http://codereview.appspot.com/2328041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@443 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com e979ead8 2010-09-23T18:03:14 Restore line endings Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@438 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com d3958d73 2010-09-22T17:13:54 Ensure that a surface is present before writing to it TRAC #13595 This fixes a bug where glTexSubImage is called on a mipmapped texture before calling glTexImage. Signed-off-by: Daniel Koch git-svn-id: https://angleproject.googlecode.com/svn/trunk@434 736b8ea6-26fd-11df-bfd4-992fa37f6226
enne@chromium.org c5f8dea4 2010-09-21T16:40:30 Allow multisampling without enabling GL_SAMPLE_COVERAGE. This setting is only used when an application wants to control which samples are written to. If it is disabled, multisampling should just write to all samples. BUG=38 Review URL: http://codereview.appspot.com/2194043 git-svn-id: https://angleproject.googlecode.com/svn/trunk@431 736b8ea6-26fd-11df-bfd4-992fa37f6226
enne@chromium.org 0fa74639 2010-09-21T16:18:52 Allow blitting to a render texture in BlitFramebuffer. Change the type check to allow blitting between render buffers and render textures. Store the format for render textures so that resolving to a render texture Colorbuffer will pass the format check. BUG=37 Review URL: http://codereview.appspot.com/2205043 git-svn-id: https://angleproject.googlecode.com/svn/trunk@430 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 9398a6b2 2010-09-20T19:07:49 I hope this will fix a generateMipmaps crash when needRenderTarget fails. This fixes this crash in 7.0.524.0 on a user's Windows XP service pack 3 box. 0x014946f3 [libGLESv2.dll - texture.cpp:1382] gl::Texture2D::generateMipmaps() 0x0149786f [libGLESv2.dll - libglesv2.cpp:2114] glGenerateMipmap 0x01c53199 [chrome.dll - gles2_cmd_decoder.cc:2437] gpu::gles2::GLES2DecoderImpl::DoGenerateMipmap(unsigned int) 0x01c52216 [chrome.dll - gles2_cmd_decoder.cc:2214] gpu::gles2::GLES2DecoderImpl::DoCommand(unsigned int,unsigned int,void const *) 0x01c4fa78 [chrome.dll - cmd_parser.cc:56] gpu::CommandParser::ProcessCommand() 0x01c4f8ba [chrome.dll - gpu_processor.cc:100] gpu::GPUProcessor::ProcessCommands() 0x01ecdcce [chrome.dll - callback.h:119] CallbackImpl<BrowsingDataRemover,void ( BrowsingDataRemover::*)(void),Tuple0>::RunWithParams(Tuple0 const &) 0x01c4f2d9 [chrome.dll - callback.h:79] CallbackRunner<Tuple0>::Run() 0x01c4edce [chrome.dll - command_buffer_service.cc:80] gpu::CommandBufferService::Flush(int) 0x01d6b9b1 [chrome.dll - gpu_command_buffer_stub.cc:129] GpuCommandBufferStub::OnFlush(int,gpu::CommandBuffer::State *) This might be glGenerateMipmaps after a device lost. Review URL: http://codereview.appspot.com/2227044 git-svn-id: https://angleproject.googlecode.com/svn/trunk@429 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 4d5962cd 2010-09-20T19:02:30 Texture2D::getRenderTarget does not assume that needsRenderTarget succeeded. Specifically, it checks that mTexture is not null. This is to fix this crash that has been happening out in the wild: 0x01444822 [libGLESv2.dll - texture.cpp:1417] gl::Texture2D::getRenderTarget(unsigned int) 0x01445615 [libGLESv2.dll - texture.cpp:2048] gl::Texture::TextureColorbufferProxy::getRenderTarget() 0x01453bb0 [libGLESv2.dll - context.cpp:1579] gl::Context::applyRenderTarget(bool) 0x01455395 [libGLESv2.dll - context.cpp:2413] gl::Context::clear(unsigned int) 0x014460c4 [libGLESv2.dll - libglesv2.cpp:611] glClear 0x01c53b75 [chrome.dll - gles2_cmd_decoder.cc:3021] gpu::gles2::GLES2DecoderImpl::ClearUnclearedRenderbuffers(unsigned int,gpu::gles2::FramebufferManager::FramebufferInfo *) 0x01c53cee [chrome.dll - gles2_cmd_decoder.cc:3078] gpu::gles2::GLES2DecoderImpl::DoFramebufferTexture2D(unsigned int,unsigned int,unsigned int,unsigned int,int) 0x01c57c7d [chrome.dll - gles2_cmd_decoder_autogen.h:756] gpu::gles2::GLES2DecoderImpl::HandleFramebufferTexture2D(unsigned int,gpu::gles2::FramebufferTexture2D const &) 0x01c52197 [chrome.dll - gles2_cmd_decoder.cc:2214] gpu::gles2::GLES2DecoderImpl::DoCommand(unsigned int,unsigned int,void const *) 0x01c4fa78 [chrome.dll - cmd_parser.cc:56] gpu::CommandParser::ProcessCommand() 0x01c4f8ba [chrome.dll - gpu_processor.cc:100] gpu::GPUProcessor::ProcessCommands() It was a Windows XP service pack 3 box with Chrome 7.0.524.0. ANGLE was at r418 in this build. I suspect it attempted to glClear after a device lost, which caused needsRenderTarget to fail. This will hopefully patch it up so it doesn't crash. We'll need to check we aren't assuming mTexture is not null elsewhere. Review URL: http://codereview.appspot.com/2233045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@427 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com d10f869d 2010-09-16T19:56:52 Fixed masked glClear TRAC #13577 Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@426 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 7beea408 2010-09-15T21:18:34 Added API to query for active attribs and uniforms. These functions are modeled after glGetShaderiv, glGetProgramiv, glGetActiveAttrib, and glGetActiveUniform. The main difference between this and OpenGL API is that we do not have programs - just shaders. BUG=26 Review URL: http://codereview.appspot.com/2183041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@425 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 8d012dfc 2010-09-15T18:26:44 Added assertion to RefCountObject destructor that mRefCount is zero. Review URL: http://codereview.appspot.com/2180041 git-svn-id: https://angleproject.googlecode.com/svn/trunk@424 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 4e3bad4e 2010-09-15T17:31:48 Changed raw pointers to RefCountObject to BindingPointers. I suspect there is a bug whereby an owning reference to a RefCountObject is temporarily assigned to a BindingPointer, causing it to be destroyed and making the owning raw pointer go dangling. Making this change for mColorbufferProxy seemed to fix a crash in Chrome with canvas 2D. This was previously landed in r417 and r418. Review URL: http://codereview.appspot.com/2108047 git-svn-id: https://angleproject.googlecode.com/svn/trunk@423 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org ff8bdfb0 2010-09-15T17:27:49 Backing out r417 and r418. I will recommit these as two separate patches: one for ID invalidation and one for reference counting issue. I will not recommit the FBO changes and since the GLES2 spec will soon make it undefined whether FBOs are in a shared namespace. Review URL: http://codereview.appspot.com/2154045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@422 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com a9cd70ac 2010-09-15T15:48:57 Fix glGetActiveUniform for samplers TRAC #13522 Original patch by Jim Hauxwell, fixed for full test suite conformance. Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@421 736b8ea6-26fd-11df-bfd4-992fa37f6226
vangelis@chromium.org cf66ebb8 2010-09-14T22:15:43 Renaming Context::mDepthStencilDirty flag to mDepthStencilInitialized to avoid breaking consistency http://codereview.appspot.com/2187041/ (Having trouble checking it in with gcl so going straight to subversion) git-svn-id: https://angleproject.googlecode.com/svn/trunk@420 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 85dc42bf 2010-09-14T03:10:08 Reset DepthStencilSurface after Context::markAllStateDirty() has been called. Landing on Vangelis' behalf. Original review: http://codereview.appspot.com/2184041/ git-svn-id: https://angleproject.googlecode.com/svn/trunk@419 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 9e287141 2010-09-11T03:46:57 Missing file. TBR=vangelis@chromium.org Review URL: http://codereview.appspot.com/2147046 git-svn-id: https://angleproject.googlecode.com/svn/trunk@418 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org 5525502d 2010-09-11T02:12:47 Replaced raw pointers to RefCountObject to BindingPointer. This fixes the ANGLE crashes in Chrome when using canvas 2D. The issue was this: Renderbuffer *mColorbufferProxy = new RenderBuffer(...); // Reference count is zero. BindingPointer<RenderBuffer> tempRef; tempRef.set(mColorbufferProxy); // Reference count is one. tempRef.set(NULL); // Reference count is zero and object is destroyed, leaving mColorbufferProxy dangling. I also initially suspected the problem was that FBOs are not treated as shared and the implementation of shared FBOs is still in the patch. I believe GLES2 supports shared FBOs. My reading of the GLES2 spec is that when a shared object is deleted, it loses its id but retains its state if left bound elsewhere. I added that to RefCountObject. Review URL: http://codereview.appspot.com/2120045 git-svn-id: https://angleproject.googlecode.com/svn/trunk@417 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org d303ef9a 2010-09-09T17:30:15 ANGLE supports GL_OES_standard_derivatives now. BUG=25 Review URL: http://codereview.appspot.com/2122048 git-svn-id: https://angleproject.googlecode.com/svn/trunk@416 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 4b6b4f79 2010-09-01T18:13:40 Removes unused IsFloatingPoint function from utilities.cpp Author: Shannon Woods git-svn-id: https://angleproject.googlecode.com/svn/trunk@411 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com fe208885 2010-09-01T15:47:57 Replaces Windows line endings with Unix where needed Author: Shannon Woods git-svn-id: https://angleproject.googlecode.com/svn/trunk@410 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 1297d92b 2010-09-01T15:47:47 Implements support for renderable floating point textures. TRAC #12909 Signed-off-by: Daniel Koch Author: Shannon Woods git-svn-id: https://angleproject.googlecode.com/svn/trunk@409 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 6a20d108 2010-08-31T13:54:27 Ensure mInfoLog is nulled out after it is deleted. Issue=27 Original-Author: Vladimir Vukicevic Signed-off-by: Daniel Koch git-svn-id: https://angleproject.googlecode.com/svn/trunk@407 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com d36c6a0a 2010-08-31T12:15:09 Implemented recovering from a lost device by context recreation. TRAC #13222 Singed-off-by: Daniel Koch Author: Nicolas Capens <nicolas@transgaming.com> git-svn-id: https://angleproject.googlecode.com/svn/trunk@406 736b8ea6-26fd-11df-bfd4-992fa37f6226
apatrick@chromium.org d3bd0ad3 2010-08-30T18:55:36 Implemented GL_NV_fence extension. I believe I have implemented all features according to the spec. The application is to allow the Chrome command buffer scheduler to be smarter about deciding which command buffer to process. For example, if a WebGL app issued a call to ReadPixels, the scheduler will issue a fence and defer executing the ReadPixels until the status goes true. It can continue to work on other command buffers in the meantime. I tested by modifying the vertex shader demo. After issuing the SwapBuffers i made issue a fence and loop until the status went true and verified it looped several times. I also tested that by calling FinishFence before going into the loop that is did not loop at all. Review URL: http://codereview.appspot.com/1965043 git-svn-id: https://angleproject.googlecode.com/svn/trunk@405 736b8ea6-26fd-11df-bfd4-992fa37f6226
daniel@transgaming.com 0a337e93 2010-08-28T17:38:27 Implement support for floating point textures. Trac #12909 Implements GL_OES_texture_float, GL_OES_texture_half_float, GL_OES_texture_float_linear, and GL_OES_texture_half_float_linear when supported by the hardware. Signed-off-by: Nicolas Capens Signed-off-by: Daniel Koch Author: Shannon Woods <shannon.woods@transgaming.com> git-svn-id: https://angleproject.googlecode.com/svn/trunk@404 736b8ea6-26fd-11df-bfd4-992fa37f6226
alokp@chromium.org 94a86ad8 2010-08-25T20:02:11 Adding support for OES_standard_derivatives extension. This is not the complete implementation. Sending it to get feedback on the API. Is it OK to add extension support into TBuiltInResource? I could create a new struct for extensions but that would lead to API change. BUG=25 Review URL: http://codereview.appspot.com/1953047 git-svn-id: https://angleproject.googlecode.com/svn/trunk@402 736b8ea6-26fd-11df-bfd4-992fa37f6226