Pass only context-private state to private entry points

This change ensures that the implementation for these entry points
cannot access anything other than context-private state.

Bug: angleproject:8224
Change-Id: I988672b138d861db25e91d71ab8c34baa4e8ebee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678783
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
This commit is contained in:
Shahbaz Youssefi
2023-07-11 15:39:50 -04:00
committed by Angle LUCI CQ
parent 491c2a5496
commit 9962f078ae
21 changed files with 2146 additions and 879 deletions

View File

@@ -6,7 +6,7 @@
"scripts/entry_point_packed_gl_enums.json":
"1c6b036918aabb9822a638fbf33f87f4",
"scripts/generate_entry_points.py":
"73eb58bb54f88066f0a4d24a5299b611",
"be46151745acdfe0c0456856e276f55a",
"scripts/gl_angle_ext.xml":
"49a0bf469d6f44c532098ef3a9fd087f",
"scripts/registry_xml.py":
@@ -84,9 +84,9 @@
"src/libANGLE/capture/capture_gles_ext_autogen.h":
"937cc0195111a894f32c5423b2918516",
"src/libANGLE/context_private_call_gl_autogen.h":
"a8eceb1ed3f34a197a701bd3882e6e0a",
"40c4fa88e0947ed35a04f2b112b6d708",
"src/libANGLE/context_private_call_gles_autogen.h":
"9d44573fb7b4047389a78b2de92b4aea",
"adb142dca00cbcbc5ebfeff649467fe6",
"src/libANGLE/validationCL_autogen.h":
"0022d0cdb6a9e2ef4a59b71164f62333",
"src/libANGLE/validationEGL_autogen.h":
@@ -138,43 +138,43 @@
"src/libGLESv2/entry_points_egl_ext_autogen.h":
"5a212372e378e0890d2d3ac96c1a3765",
"src/libGLESv2/entry_points_gl_1_autogen.cpp":
"29e0060c4be54b16fdbc5dcd697ca8f6",
"4743bd40f9f0222153efa675a21aced6",
"src/libGLESv2/entry_points_gl_1_autogen.h":
"fc92166806eac5dc285f6a3f06e89d2b",
"src/libGLESv2/entry_points_gl_2_autogen.cpp":
"159bb226988f12a1c4207fbfaa00c6cb",
"cda13affb35accbf6027ee1623fa330b",
"src/libGLESv2/entry_points_gl_2_autogen.h":
"ff42b86b47d77aeb902b6f0f5bd31758",
"src/libGLESv2/entry_points_gl_3_autogen.cpp":
"de42d1eb94f0cda49b7c108c08142e8e",
"4aff47410990d16fb36982ddf6574550",
"src/libGLESv2/entry_points_gl_3_autogen.h":
"88fcf08e2c1aa73819067f28c0fd1eba",
"src/libGLESv2/entry_points_gl_4_autogen.cpp":
"304a00a52791bc86d415edc8b69b50e1",
"ab61cec77bf6ed11801fbbd86ec7c190",
"src/libGLESv2/entry_points_gl_4_autogen.h":
"ec1171de9a494598d53bce149ba7b26d",
"src/libGLESv2/entry_points_gles_1_0_autogen.cpp":
"06f5928367de3e18313d30d939ef3ea8",
"9cf1c7684291660339f336b09d5bd7c1",
"src/libGLESv2/entry_points_gles_1_0_autogen.h":
"1d3aef77845a416497070985a8e9cb31",
"src/libGLESv2/entry_points_gles_2_0_autogen.cpp":
"800ccdcadca40b4dcd03298134b3dc07",
"2e515319a77ba1cbc99795999c645bb4",
"src/libGLESv2/entry_points_gles_2_0_autogen.h":
"691c60c2dfed9beca68aa1f32aa2c71b",
"src/libGLESv2/entry_points_gles_3_0_autogen.cpp":
"91c9297a2b235b822ba208d2e9fe5ef5",
"e42af5c86b82248ddbf595c607e32592",
"src/libGLESv2/entry_points_gles_3_0_autogen.h":
"4ac2582759cdc6a30f78f83ab684d555",
"src/libGLESv2/entry_points_gles_3_1_autogen.cpp":
"d07e6f140ac401aec0741541350602b8",
"7d18d8de0b75ce92e5545d9cbc79941c",
"src/libGLESv2/entry_points_gles_3_1_autogen.h":
"a7327c330a91665fc31accbb78793b42",
"src/libGLESv2/entry_points_gles_3_2_autogen.cpp":
"7b7114ae18bf8262e665ffec5d4efca5",
"39f72278c805979ca0f5ed9e301f6384",
"src/libGLESv2/entry_points_gles_3_2_autogen.h":
"647f932a299cdb4726b60bbba059f0d2",
"src/libGLESv2/entry_points_gles_ext_autogen.cpp":
"352661652cc6da091bfdc8e8cf53b1a3",
"f4e3319d350f64336ce8dc8591508ce9",
"src/libGLESv2/entry_points_gles_ext_autogen.h":
"f1895ec530403d4a5cee26a2a1637854",
"src/libGLESv2/libGLESv2_autogen.cpp":

View File

@@ -1900,7 +1900,9 @@ def format_entry_point_def(api, command_node, cmd_name, proto, params, cmd_packe
"internal_params":
", ".join(internal_params),
"context_private_internal_params":
", ".join(["context"] + internal_params),
", ".join(
["context->getMutablePrivateState()", "context->getMutablePrivateStateCache()"] +
internal_params),
"internal_context_lock_params":
", ".join(internal_context_lock_params),
"initialization":
@@ -2155,7 +2157,8 @@ def format_validation_proto(api, cmd_name, params, cmd_packed_gl_enums, packed_p
def format_context_private_call_proto(api, cmd_name, proto, params, cmd_packed_gl_enums,
packed_param_types):
with_extra_params = ["Context *context"] + params
with_extra_params = ["PrivateState *privateState", "PrivateStateCache *privateStateCache"
] + params
packed_enums = get_packed_enums(api, cmd_packed_gl_enums, cmd_name, packed_param_types,
with_extra_params)
internal_params = get_context_private_call_params(api, cmd_name, with_extra_params,