1. 20 Sep, 2010 1 commit
    • Texture2D::getRenderTarget does not assume that needsRenderTarget succeeded. · 4d5962cd
      apatrick@chromium.org authored
      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
  2. 16 Sep, 2010 1 commit
  3. 15 Sep, 2010 5 commits
  4. 14 Sep, 2010 2 commits
  5. 11 Sep, 2010 2 commits
  6. 09 Sep, 2010 2 commits
  7. 08 Sep, 2010 1 commit
  8. 07 Sep, 2010 1 commit
  9. 01 Sep, 2010 4 commits
  10. 31 Aug, 2010 3 commits
  11. 30 Aug, 2010 1 commit
    • Implemented GL_NV_fence extension. · d3bd0ad3
      apatrick@chromium.org authored
      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
  12. 28 Aug, 2010 1 commit
  13. 26 Aug, 2010 1 commit
  14. 25 Aug, 2010 2 commits
  15. 24 Aug, 2010 13 commits