| 
              
dce09168
               | 
              
2019-10-03T13:47:47
               | 
              
               | 
              
Enable unfold_short_circuits workaround on Apple.
Bug: angleproject:3957
Change-Id: I49ba77b2daeed01a2b668fc68c26663e87997ad5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1838421
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
               | 
            
            
              
   
               | 
              
7dd03446
               | 
              
2019-09-30T13:50:12
               | 
              
               | 
              
Ensure Features* descriptions stay up to date
Created a macro to help keep Features' descriptions up to date. This
will avoid confusion in the future when conditions change. Also update
all descriptions to match current state.
Bug: angleproject:3947
Change-Id: Ifc65e7789c916fab79f1323798dfb59d7a4efad2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1829584
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
e6582161
               | 
              
2019-09-16T12:39:18
               | 
              
               | 
              
Convert DXT1 RGB data to DXT3 RGBA when uploading to the GPU.
DXT1 has a specific 'BLACK' code that results in transparent black pixels when
sampled. D3D does not have specific RGB-only DXT1 formats like OpenGL does so
when this code is encountered, we sample 0 alpha for these pixels when GL would
expect 1 because the alpha channel should not exist.
Work around this by converting to DXT3 RGBA, adding an extra block of 1.0 alpha
pixels for each color block.
Mac Intel OpenGL requires additional workarounds to always sample 1.0 alpha.
Set the texture swizzle parameters to force it.
BUG=angleproject:3729
Change-Id: Ia3647085acd97bb01af4e95ef3f6f21dcfb6a554
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1804880
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
               | 
            
            
              
   
               | 
              
d8e821aa
               | 
              
2019-08-29T12:38:35
               | 
              
               | 
              
Expand the TextureGL::releaseTexImage size reset workaround to Win AMD.
Windows 10 AMD drivers have also had issues with generating errors when calling
glTexImage2D with zero size after unbinding a surface.
BUG=angleproject:3859
Change-Id: Iae3e31418b6c89056d0d4aab954519598d8f25f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1775111
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
cd31f286
               | 
              
2019-06-25T14:22:41
               | 
              
               | 
              
Implement Draw base vertex and base instance functions
This patch implements functionality of  glDrawArraysInstancedBaseInstanceANGLE,
glDrawElementsInstancedBaseVertexBaseInstanceANGLE,
glMultiDrawArraysInstancedBaseInstanceANGLE,
and glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE
Workaround for OpenGL driver on Mac:
gl_VertexID on Mac with AMD GPU doesn't include baseVertex value.
So replace gl_VertexID with (gl_VertexID + angle_BaseVertex) if any.
Workaround for Vulkan GLSL:
gl_InstanceIndex on Vulkan includes baseInstance. So replace
gl_InstanceIndex with (gl_InstanceIndex - angle_BaseInstance) when
angle_BaseInstance is declared.
Bug: chromium:891861, angleproject:3402
Change-Id: Ia1d94b5d4d7da7e635468c05c962c4f7eb1b1919
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750126
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
e2ea45ba
               | 
              
2019-08-23T14:05:53
               | 
              
               | 
              
Don't reset the texture size to zero in TextureGL::releaseTexImage on Mac.
After unbinding IOSurface textures, we reset the texture size to 0 because
some platforms don't correctly update their state tracking.  This call ends
up generating GL_INVALID_OPERATION errors on Mac for unknown reasons.
Skip the call, the size reset is not required on Mac anyways.
BUG=angleproject:3859
Change-Id: I5e39b6a36aaff41082a5fcc923970f8e97774675
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769059
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
9d737966
               | 
              
2019-08-14T12:25:12
               | 
              
               | 
              
Standardize copyright notices to project style
For all "ANGLE Project" copyrights, standardize to the format specified
by the style guide. Changes:
- "Copyright (c)" and "Copyright(c)" changed to just "Copyright".
- Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1").
- Fixed a small number of files that had no copyright date using the
  initial commit year from the version control history.
- Fixed one instance of copyright being "The ANGLE Project" rather than
  "The ANGLE Project Authors"
These changes are applied both to the copyright of source file, and
where applicable to copyright statements that are generated by
templates.
BUG=angleproject:3811
Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
0716ce0a
               | 
              
2019-07-22T15:20:47
               | 
              
               | 
              
Re-add case to blitframebuffer workaround where src is outside of bounds.
On Mac, blitFramebuffer calls fail if the source region is not enclosed
by the framebuffer. In this case, we must naively clip the source region
and adjust the dest region accordingly. This is slightly different
behavior and may cause issues with scaling so we use a separate
workaround.
Also, Windows NVIDIA has a driver bug that affects Vulkan device
creation after blitting large textures, so it should be included in the
original workaround.
This CL cleans up the workaround to use more helpers from ANGLE and to
generally improve readability.
Bug: chromium:830046
Change-Id: I50bd97449725b738036e6bd3af82362020d7eda8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1713090
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
7151fe54
               | 
              
2019-07-17T15:15:27
               | 
              
               | 
              
Port adjust_src_dst_region_for_blitframebuffer workaround to ANGLE.
BlitFramebuffer has issues on some platforms with large source/dest
textures. As per the WebGL2 spec, this was caught with validation for
sizes over 2^32, but there is a specific issue on Linux NVIDIA where it
fails on sizes over 2^16. A better workaround (from chromium), resizes
the blitframebuffer call based on the framebuffer size.
Bug: chromium:830046
Change-Id: Ic6196db6228d0d0ac92b12a68bbced76dcbcdf8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707115
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
               | 
            
            
              
   
               | 
              
aded991b
               | 
              
2019-07-12T16:02:06
               | 
              
               | 
              
Fix hang on Linux Intel when allocating large textures.
Intel Linux graphics drivers before kernel 5.0 can hang when allocating
large textures. Limit the texture size as a workaround.
Bug: chromium:927470
Change-Id: Ic8c14235396492efafd663b1cd012fd752427992
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1700146
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
2a4f36b1
               | 
              
2019-07-09T16:10:59
               | 
              
               | 
              
GL: Work around Intel driver bug when clearing to zeros or ones.
When clearing to zeros or ones on some Intel drivers on Mac, the clear color
would be incorrect.
This replicates the chromium clear_to_zero_or_one_broken workaround.
BUG=angleproject:3672
Change-Id: I0f065420b577bd8f8d931ccdbeeebdcbf9fd08d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1692977
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
               | 
            
            
              
   
               | 
              
ecd2e3b1
               | 
              
2019-07-09T15:39:39
               | 
              
               | 
              
GL: Reset the texture base level before uploads on Mac.
Reset the base level of textures before call glTexImage on Mac
to prevent driver bugs that cause texture corruption.
BUG=angleproject:3671
Change-Id: I90e94b8395a781a2142ef6be3af1d6117f084152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1692975
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
               | 
            
            
              
   
               | 
              
2074d5f7
               | 
              
2019-06-27T13:18:16
               | 
              
               | 
              
GL: Clamp uniform array access on Android and AMD devices.
Chrome used to clamp it everywhere but in practice it is only needed on
these devices.
TEST=conformance/uniforms/out-of-bounds-uniform-array-access.html
Change-Id: Idffe84023f8b27733bfda209edd59bbb220b5c0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1680054
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
5ff8cae9
               | 
              
2019-06-21T11:09:25
               | 
              
               | 
              
GL/D3D: Use texture uploads instead of clearing for robust init.
Chrome uses regular texture uploads on all platforms except OpenGL on
Mac to do robust resource init for textures because multiple bugs have
been observed with texture corruption.
BUG=883276
BUG=882580
BUG=941620
Change-Id: I5fcd6862147822a08c7533e6a6a9277223034ebd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1669104
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
647f2000
               | 
              
2019-06-19T16:18:28
               | 
              
               | 
              
Limit max texture size and max MSAA samples on Android.
Android devices will often fail to allocate textures this large and it is
prefereable to return an error from ANGLE instead of losing the context
due to an out of memory error.
This mirrors the limits Chrome applies with the max_texture_size_limit_4096
and max_msaa_sample_count_4 workarounds that are broadly applied to Android.
BUG=882580
Change-Id: I63890baa8712f13b37c607fa475432e67e9384a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1351357
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
               | 
            
            
              
   
               | 
              
beb0eb2d
               | 
              
2019-06-14T15:10:33
               | 
              
               | 
              
Clean up workarounds/features to single location.
Rename all workarounds structs to features, and move the lists to a
shared location in include/platform (to help with documentation,
see:
https://cs.chromium.org/chromium/src/ui/gl/gl_switches.cc?sq=package:chromium&g=0&l=69)
Bug: angleproject:1621
Change-Id: I4069f08131db5e886047a007efb5d7764dfee5f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1660952
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               |