1. 03 Jun, 2011 1 commit
    • Disable use of FlipEx for problematic use cases. · 585b3d0e
      nduca@chromium.org authored
      It seems that DWM will, when given an HWND that has an associated
      FlipEX swap chain, stretch the contents of the HWND to fill the new
      window IF you don't issue draw calls to that HWND before the WM_PAINT
      returns. This leads to horrendous sizing artifacts.
      
      For Chromium, this is a show stopper.
      
      But, FlipEx is definitely a good thing, for regular single process
      applications.
      
      So, is there a clean way to conditionally disable FlipEX for
      these problem cases? The heuristic in this patch basically says "if your hwnd
      is not in-process, then you're probably not painting in its HWND, so don't sue
      FlipEX."
      
      This catches the Chromium use case. There is still the possibility of a regular
      single-process EGL application that tries to draw outside WM_PAINT that would
      experience sizing artefacts. But, maybe that's OK.
      
      Anyways, I'm not married to this technique. Just throwing something out there
      to start the discussion. :)
      
      Review URL: http://codereview.appspot.com/4536102
      
      git-svn-id: https://angleproject.googlecode.com/svn/trunk@668 736b8ea6-26fd-11df-bfd4-992fa37f6226
  2. 02 Jun, 2011 3 commits
  3. 01 Jun, 2011 2 commits
  4. 30 May, 2011 1 commit
  5. 27 May, 2011 1 commit
  6. 26 May, 2011 5 commits
  7. 25 May, 2011 1 commit
  8. 17 May, 2011 2 commits
  9. 13 May, 2011 1 commit
  10. 12 May, 2011 3 commits
    • Add support for eglCreatePbufferFromClientBuffer, taking as input a D3D share… · 4e297707
      jbauman@chromium.org authored
      Add support for eglCreatePbufferFromClientBuffer, taking as input a D3D share handle corresponding to the enum EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE. No spec as of yet, but it does the obvious thing.
      
      BUG=129
      TEST=
      
      Review URL: http://codereview.appspot.com/4325048
      
      git-svn-id: https://angleproject.googlecode.com/svn/trunk@650 736b8ea6-26fd-11df-bfd4-992fa37f6226
    • Use SSE2 to swizzle RGBA to BGRA · f1f28c80
      jbauman@chromium.org authored
      Using SSE2 can drastically reduce the amount of time it takes to do glTexImage2D. I've also added a plain-C path that's much faster than the one that was there before.
      
      BUG=151
      TEST=
      
      Review URL: http://codereview.appspot.com/4465052
      
      git-svn-id: https://angleproject.googlecode.com/svn/trunk@649 736b8ea6-26fd-11df-bfd4-992fa37f6226
    • Cache result of D3DPERF_GetStatus. · 73bec982
      apatrick@chromium.org authored
      I profiled the WebGL acquarium with AMD CodeAnalyst and it turns out this function got a lot of hits. Top 10 before change:
      
      CS:EIP     	Symbol + Offset                                                              	64-bit 	Timer samples 	
      0x62a87260 	CBatchFilterI::ProcessBatch                                                  	       	13.41         	
      0x62a171f1 	D3DPERF_GetStatus                                                            	       	6.04          	
      0x629ce831 	CD3DBase::SetVertexShaderConstantF_FP                                        	       	5.12          	
      0x62a88bea 	CBatchFilterI::GetBatchBufferPointer<_LH_SETPIXELSHADERCONSTIMM_TOKEN_SMALL> 	       	4.61          	
      0x6298060b 	UpdateViewportCache                                                          	       	4.2           	
      0x6298da3a 	CD3DBase::UpdateTextures                                                     	       	3.58          	
      0x6298db6b 	CD3DDDIDX10::SetTexture                                                      	       	2.76          	
      0x6298df1d 	CD3DDDIDX10::InsertStreamSource                                              	       	2.46          	
      0x629d1c1a 	CD3DBase::SetPixelShaderConstantF_FP                                         	       	2.25          	
      0x6297efc4 	CD3DHal::SetSamplerState_FP                                                  	       	2.05          	
      
      10 functions, 186 instructions, Total: 454 samples, 46.47% of shown samples, 2.51% of total session samples
      
      
      And after:
      
      CS:EIP     	Symbol + Offset                                                              	64-bit 	Timer samples 	
      0x69317260 	CBatchFilterI::ProcessBatch                                                  	       	13.87         	
      0x69318bea 	CBatchFilterI::GetBatchBufferPointer<_LH_SETPIXELSHADERCONSTIMM_TOKEN_SMALL> 	       	5.84          	
      0x6921060b 	UpdateViewportCache                                                          	       	5.29          	
      0x6925e831 	CD3DBase::SetVertexShaderConstantF_FP                                        	       	4.93          	
      0x6921da3a 	CD3DBase::UpdateTextures                                                     	       	4.38          	
      0x6921e034 	CD3DBase::SetStreamSource_FP                                                 	       	3.65          	
      0x69261c1a 	CD3DBase::SetPixelShaderConstantF_FP                                         	       	3.65          	
      0x69227651 	CD3DBase::DrawIndexedPrimitive                                               	       	2.74          	
      0x6920efc4 	CD3DHal::SetSamplerState_FP                                                  	       	2.37          	
      0x6925e9f7 	CD3DBase::SetVertexShaderConstantIntF                                        	       	2.37          	
      
      10 functions, 152 instructions, Total: 269 samples, 49.09% of shown samples, 0.80% of total session samples
      
      
      UpdateViewportCache looks like it might be low hanging fruit as well.
      Review URL: http://codereview.appspot.com/4535049
      
      git-svn-id: https://angleproject.googlecode.com/svn/trunk@648 736b8ea6-26fd-11df-bfd4-992fa37f6226
  11. 11 May, 2011 14 commits
  12. 05 May, 2011 2 commits
  13. 03 May, 2011 1 commit
  14. 30 Apr, 2011 1 commit
  15. 29 Apr, 2011 2 commits