Make glColor/DepthMask entry points lockless

These entry points only set state that is entirely accessed by the
owning context (context-local) and thus don't require locking.
glColorMask* functions also affect the cached context state (in
particular draw validity), so the relevant cached state is also modified
to support being locklessly modified.

Bug: angleproject:8224
Change-Id: I221b4efa25fc1c11419d1ac942f1c37e59ec92c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4658173
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This commit is contained in:
Shahbaz Youssefi
2023-07-04 15:35:46 -04:00
committed by Angle LUCI CQ
parent f0deadab14
commit be41fe2949
13 changed files with 106 additions and 69 deletions

View File

@@ -6,7 +6,7 @@
"scripts/entry_point_packed_gl_enums.json":
"1c6b036918aabb9822a638fbf33f87f4",
"scripts/generate_entry_points.py":
"8f66bd6bc6ed14560e11bcb22637437d",
"c7997b2073a073dfa430214bef5714e2",
"scripts/gl_angle_ext.xml":
"49a0bf469d6f44c532098ef3a9fd087f",
"scripts/registry_xml.py":
@@ -30,13 +30,13 @@
"src/libANGLE/Context_gles_1_0_autogen.h":
"e20ac775a0d01180d35d0477198e093c",
"src/libANGLE/Context_gles_2_0_autogen.h":
"39f9da537ceb007d31d578eec314d26f",
"0493c2638599dcdc39c44bc84f1e4525",
"src/libANGLE/Context_gles_3_0_autogen.h":
"3a4b261be12c9eb28c38da34c008a3f7",
"src/libANGLE/Context_gles_3_1_autogen.h":
"e26ffdad1be7d4a4aabecf7bfb40bf3f",
"src/libANGLE/Context_gles_3_2_autogen.h":
"48567dca16fd881dfe6d61fee0e3106f",
"546e60fc99911ea3a5b955415b81dd73",
"src/libANGLE/Context_gles_ext_autogen.h":
"77046ddf577d922a38845e8b4de6aac0",
"src/libANGLE/capture/capture_egl_autogen.cpp":
@@ -84,7 +84,7 @@
"src/libANGLE/capture/capture_gles_ext_autogen.h":
"acd990d31580a461eedcda4f60f7788b",
"src/libANGLE/context_local_call_autogen.h":
"75572ccc32f75c1ded6216c9050a0eac",
"d83fa7906c0285f34c58eb69d4035ceb",
"src/libANGLE/validationCL_autogen.h":
"0022d0cdb6a9e2ef4a59b71164f62333",
"src/libANGLE/validationEGL_autogen.h":
@@ -156,7 +156,7 @@
"src/libGLESv2/entry_points_gles_1_0_autogen.h":
"1d3aef77845a416497070985a8e9cb31",
"src/libGLESv2/entry_points_gles_2_0_autogen.cpp":
"df1b86ddb899a18875ef741a49be6c93",
"10275e24b36a86a2de5aba52b952ae8d",
"src/libGLESv2/entry_points_gles_2_0_autogen.h":
"691c60c2dfed9beca68aa1f32aa2c71b",
"src/libGLESv2/entry_points_gles_3_0_autogen.cpp":
@@ -168,11 +168,11 @@
"src/libGLESv2/entry_points_gles_3_1_autogen.h":
"a7327c330a91665fc31accbb78793b42",
"src/libGLESv2/entry_points_gles_3_2_autogen.cpp":
"fec93de271babbca642a2957b47ade64",
"c3c6e66328d6eca21c273aaa7cb5fc97",
"src/libGLESv2/entry_points_gles_3_2_autogen.h":
"647f932a299cdb4726b60bbba059f0d2",
"src/libGLESv2/entry_points_gles_ext_autogen.cpp":
"b47981a6fa085a976ae040674e06e07d",
"0655076ef6d7a5b16b524a0d1a9ebe64",
"src/libGLESv2/entry_points_gles_ext_autogen.h":
"7bb44566362d1de21552faf427517085",
"src/libGLESv2/libGLESv2_autogen.cpp":