Version in base suite: 121.0.6167.139-1~deb12u1 Version in overlay suite: 125.0.6422.60-1~deb12u1 Base version: chromium_125.0.6422.60-1~deb12u1 Target version: chromium_125.0.6422.76-1~deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/c/chromium/chromium_125.0.6422.60-1~deb12u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/c/chromium/chromium_125.0.6422.76-1~deb12u1.dsc DEPS | 6 ash/app_list/views/app_list_search_view_unittest.cc | 54 ash/app_list/views/search_box_view.cc | 1 ash/strings/ash_strings_ca.xtb | 8 ash/strings/ash_strings_iw.xtb | 2 ash/webui/common/resources/sea_pen/sea_pen_chip_text_element.ts | 4 ash/wm/gestures/back_gesture/back_gesture_event_handler.cc | 10 build/util/LASTCHANGE | 2 build/util/LASTCHANGE.committime | 2 chrome/LACROS_QA_QUALIFIED_VERSION | 2 chrome/VERSION | 2 chrome/app/resources/chromium_strings_sv.xtb | 2 chrome/app/resources/generated_resources_ar.xtb | 2 chrome/app/resources/generated_resources_ca.xtb | 44 chrome/app/resources/generated_resources_eu.xtb | 6 chrome/app/resources/generated_resources_fr-CA.xtb | 2 chrome/app/resources/generated_resources_hu.xtb | 2 chrome/app/resources/generated_resources_iw.xtb | 6 chrome/app/resources/generated_resources_ja.xtb | 4 chrome/app/resources/generated_resources_ky.xtb | 6 chrome/app/resources/generated_resources_ml.xtb | 2 chrome/app/resources/generated_resources_sv.xtb | 26 chrome/app/resources/generated_resources_ta.xtb | 2 chrome/app/resources/generated_resources_uk.xtb | 14 chrome/app/resources/generated_resources_vi.xtb | 6 chrome/app/resources/google_chrome_strings_sv.xtb | 2 chrome/browser/extensions/installed_loader.cc | 4 chrome/browser/search_engine_choice/search_engine_choice_dialog_interactive_uitest.cc | 9 chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb | 2 chrome/browser/ui/chromeos/read_write_cards/read_write_cards_ui_controller.cc | 2 chrome/browser/ui/quick_answers/ui/quick_answers_view.cc | 17 chrome/browser/ui/views/tabs/tab_drag_controller.cc | 16 chrome/browser/ui/views/tabs/tab_drag_controller.h | 3 chrome/browser/user_education/browser_feature_promo_storage_service.cc | 2 chromeos/CHROMEOS_LKGM | 2 chromeos/ash/components/growth/campaigns_matcher.cc | 5 chromeos/strings/chromeos_strings_ky.xtb | 6 chromeos/strings/chromeos_strings_sv.xtb | 4 chromeos/strings/chromeos_strings_uk.xtb | 2 components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb | 2 components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb | 2 components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb | 2 components/exo/buffer.cc | 194 components/exo/buffer.h | 20 components/policy/resources/policy_templates_vi.xtb | 2 components/search_engines/default_search_manager.cc | 38 components/search_engines/default_search_manager.h | 7 components/search_engines/prepopulated_engines.json | 2 components/search_engines/search_engine_countries-inc.cc | 6 components/search_engines/template_url_service.cc | 21 components/strings/components_strings_ar.xtb | 2 components/strings/components_strings_bs.xtb | 2 components/strings/components_strings_ca.xtb | 10 components/strings/components_strings_de.xtb | 2 components/strings/components_strings_fr.xtb | 2 components/strings/components_strings_iw.xtb | 4 components/strings/components_strings_no.xtb | 2 components/strings/components_strings_pl.xtb | 2 components/strings/components_strings_sv.xtb | 2 components/strings/components_strings_tr.xtb | 2 components/strings/components_strings_vi.xtb | 2 components/viz/common/features.cc | 2 debian/changelog | 14 debian/patches/i386/angle-lockfree.patch | 48 debian/scripts/chromium | 6 gpu/command_buffer/build_cmd_buffer_lib.py | 8 gpu/command_buffer/client/gles2_implementation.cc | 144 gpu/command_buffer/client/gles2_implementation_impl_autogen.h | 128 gpu/config/gpu_lists_version.h | 2 gpu/webgpu/DAWN_VERSION | 2 infra/config/generated/testing/variants.pyl | 56 infra/config/targets/cros-skylab-variants.json | 48 infra/config/targets/lacros-version-skew-variants.json | 32 media/capture/video/apple/video_capture_device_avfoundation.mm | 2 net/http/transport_security_state_static.pins | 4 net/http/transport_security_state_static_pins.json | 2 testing/buildbot/chrome.json | 48 testing/buildbot/chromium.android.json | 96 testing/buildbot/chromium.chromiumos.json | 64 testing/buildbot/chromium.coverage.json | 64 testing/buildbot/chromium.fyi.json | 192 testing/buildbot/chromium.memory.json | 64 testing/buildbot/variants.pyl | 56 testing/buildbot/waterfalls.pyl | 6 testing/variations/fieldtrial_testing_config.json | 15 third_party/angle/scripts/code_generation_hashes/SPIR-V_helpers.json | 4 third_party/angle/src/common/spirv/gen_spirv_builder_and_parser.py | 9 third_party/angle/src/common/spirv/spirv_instruction_builder_autogen.cpp | 9 third_party/blink/renderer/core/css/parser/css_selector_parser.cc | 3 third_party/blink/renderer/core/dom/scripted_idle_task_controller.cc | 34 third_party/blink/renderer/core/html/forms/html_option_element.cc | 3 third_party/blink/renderer/platform/runtime_enabled_features.json5 | 2 third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.cc | 16 third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.h | 3 third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h | 5 third_party/dawn/DEPS | 2 third_party/dawn/third_party/dxc/.github/CODEOWNERS | 1 third_party/dawn/third_party/dxc/.github/ISSUE_TEMPLATE/support.md | 28 third_party/dawn/third_party/dxc/azure-pipelines.yml | 2 third_party/dawn/third_party/dxc/cmake/modules/HandleLLVMOptions.cmake | 4 third_party/dawn/third_party/dxc/docs/DXIL.rst | 3 third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilConstants.h | 1 third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilShaderModel.h | 12 third_party/dawn/third_party/dxc/include/dxc/Support/SPIRVOptions.h | 1 third_party/dawn/third_party/dxc/include/dxc/Test/HlslTestUtils.h | 2 third_party/dawn/third_party/dxc/include/dxc/WinAdapter.h | 48 third_party/dawn/third_party/dxc/include/llvm/ADT/SparseBitVector.h | 14 third_party/dawn/third_party/dxc/include/llvm/Analysis/IVUsers.h | 12 third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineBasicBlock.h | 12 third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineFunction.h | 12 third_party/dawn/third_party/dxc/include/llvm/CodeGen/SelectionDAG.h | 12 third_party/dawn/third_party/dxc/include/llvm/CodeGen/SlotIndexes.h | 12 third_party/dawn/third_party/dxc/include/llvm/IR/BasicBlock.h | 14 third_party/dawn/third_party/dxc/include/llvm/IR/Function.h | 12 third_party/dawn/third_party/dxc/include/llvm/IR/Instruction.h | 12 third_party/dawn/third_party/dxc/include/llvm/IR/Module.h | 48 third_party/dawn/third_party/dxc/include/llvm/Transforms/Utils/SymbolRewriter.h | 12 third_party/dawn/third_party/dxc/lib/DxcSupport/HLSLOptions.cpp | 9 third_party/dawn/third_party/dxc/lib/DxcSupport/Unicode.cpp | 22 third_party/dawn/third_party/dxc/lib/DxcSupport/WinAdapter.cpp | 18 third_party/dawn/third_party/dxc/lib/DxcSupport/dxcapi.use.cpp | 2 third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainer.cpp | 3 third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainerAssembler.cpp | 4 third_party/dawn/third_party/dxc/lib/DxilDia/DxcPixCompilationInfo.cpp | 12 third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSession.cpp | 4 third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSymbolManager.cpp | 24 third_party/dawn/third_party/dxc/lib/HLSL/DxcOptimizer.cpp | 2 third_party/dawn/third_party/dxc/lib/HLSL/DxilValidation.cpp | 6 third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp | 5 third_party/dawn/third_party/dxc/lib/Support/MSFileSystemBasic.cpp | 2 third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp | 4 third_party/dawn/third_party/dxc/projects/dxilconv/unittests/DxilConvTests.cpp | 4 third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticGroups.td | 1 third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td | 37 third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/FeatureManager.h | 1 third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/SpirvBuilder.h | 17 third_party/dawn/third_party/dxc/tools/clang/include/clang/Sema/Sema.h | 17 third_party/dawn/third_party/dxc/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h | 12 third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExpr.cpp | 9 third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExprCXX.cpp | 5 third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGHLSLMSFinishCodeGen.cpp | 19 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.cpp | 203 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.h | 7 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/CapabilityVisitor.cpp | 12 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/DeclResultIdMapper.cpp | 21 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/FeatureManager.cpp | 3 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/InitListHandler.cpp | 9 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/PervertexInputVisitor.cpp | 5 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvBuilder.cpp | 117 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.cpp | 88 third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.h | 3 third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaChecking.cpp | 3 third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaDecl.cpp | 9 third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaExpr.cpp | 3 third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSL.cpp | 611 +- third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSLDiagnoseTU.cpp | 106 third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaOverload.cpp | 4 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/operators/swizzle/indexSwizzledBoolVec.hlsl | 30 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/semantic.hull-output.size-mismatch.hs.hlsl | 22 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.dot2add.hlsl | 53 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.cbuf.var.hlsl | 19 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.hlsl | 2 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.neg.hlsl | 11 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.pushconstant.access.bitfield.hlsl | 21 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.struct.access.bitfield.sized.hlsl | 148 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.array.hlsl | 23 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.hlsl | 23 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.error.hlsl | 7 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.hlsl | 24 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-input.size-mismatch.hs.hlsl | 2 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-output.size-mismatch.hs.hlsl | 22 third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/vk.layout.struct.bitfield.array.hlsl | 154 third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-float.ll | 135 third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-int.ll | 134 third_party/dawn/third_party/dxc/tools/clang/test/DXC/disable_paq.hlsl | 19 third_party/dawn/third_party/dxc/tools/clang/test/DXC/matrix_crash.ll | 76 third_party/dawn/third_party/dxc/tools/clang/test/HLSLFileCheck/hlsl/functions/attribute/patch_constant_function_missing.hlsl | 1 third_party/dawn/third_party/dxc/tools/clang/test/HLSLFileCheck/hlsl/payload_qualifier/access.hlsl | 12 third_party/dawn/third_party/dxc/tools/clang/test/HLSLFileCheck/hlsl/payload_qualifier/general.hlsl | 2 third_party/dawn/third_party/dxc/tools/clang/test/HLSLFileCheck/hlsl/types/conversions/attributes_Mod.hlsl | 3 third_party/dawn/third_party/dxc/tools/clang/test/HLSLFileCheck/hlsl/workgraph/case118_barrier_objectarg.hlsl | 4 third_party/dawn/third_party/dxc/tools/clang/test/HLSLFileCheck/samples/SimpleHs12.hlsl | 3 third_party/dawn/third_party/dxc/tools/clang/test/HLSLFileCheck/validation/callgraph/barrier-group-in-nested-fn-vs-lib68.hlsl | 7 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/attributes.hlsl | 5 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/getattribute-at-vertex.legal.hlsl | 46 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/getattribute-at-vertex.legal.nointerpolation.call.hlsl | 16 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/getattribute-at-vertex.missing.nointerpolation.call.dxil.hlsl | 12 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/getattribute-at-vertex.missing.nointerpolation.call.hlsl | 12 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/getattribute-at-vertex.missing.nointerpolation.dxil.hlsl | 19 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/getattribute-at-vertex.missing.nointerpolation.hlsl | 18 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/intrinsics/barrier/barrier-cs-errors.hlsl | 33 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/intrinsics/barrier/barrier-cs-local-errors.hlsl | 21 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/intrinsics/barrier/barrier-cs.hlsl | 62 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/intrinsics/barrier/barrier-node-errors.hlsl | 195 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/intrinsics/barrier/barrier-node.hlsl | 196 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/intrinsics/barrier/barrier-vs-errors.hlsl | 99 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/intrinsics/barrier/barrier-vs.hlsl | 38 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/objects/NodeObjects/node-objects.hlsl | 9 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/objects/texture/CalculateLODExtraDiag.hlsl | 18 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/semantics/semantic.vertex.position.hlsl | 5 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/hlsl/semantics/semantic.vertex.position.nowarn.hlsl | 5 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/operator-overload.hlsl | 32 third_party/dawn/third_party/dxc/tools/clang/test/SemaHLSL/recursion/library_hull_recursion.hlsl | 1 third_party/dawn/third_party/dxc/tools/clang/tools/d3dcomp/d3dcomp.cpp | 18 third_party/dawn/third_party/dxc/tools/clang/tools/dxa/dxa.cpp | 4 third_party/dawn/third_party/dxc/tools/clang/tools/dxclib/dxc.cpp | 11 third_party/dawn/third_party/dxc/tools/clang/tools/dxcompiler/dxcfilesystem.cpp | 9 third_party/dawn/third_party/dxc/tools/clang/tools/dxcompiler/dxclinker.cpp | 12 third_party/dawn/third_party/dxc/tools/clang/tools/dxcompiler/dxcompilerobj.cpp | 10 third_party/dawn/third_party/dxc/tools/clang/tools/dxlib-sample/lib_cache_manager.cpp | 2 third_party/dawn/third_party/dxc/tools/clang/tools/dxopt/dxopt.cpp | 4 third_party/dawn/third_party/dxc/tools/clang/tools/libclang/dxcrewriteunused.cpp | 14 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/CompilerTest.cpp | 16 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/DxilContainerTest.cpp | 2 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/FunctionTest.cpp | 2 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/MSFileSysTest.cpp | 2 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/OptimizerTest.cpp | 4 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/PixDiaTest.cpp | 7 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/PixTest.cpp | 2 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/PixTestUtils.cpp | 7 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/SystemValueTest.cpp | 4 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSL/ValidationTest.cpp | 12 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSLExec/ExecutionTest.cpp | 24 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSLExec/ShaderOpArith.xml | 4 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSLExec/ShaderOpTest.cpp | 8 third_party/dawn/third_party/dxc/tools/clang/unittests/HLSLTestLib/FileCheckerTest.cpp | 10 third_party/dawn/third_party/dxc/tools/dxexp/dxexp.cpp | 105 third_party/dawn/third_party/dxc/utils/hct/hctdb.py | 2 ui/ozone/platform/drm/gpu/hardware_display_controller.cc | 20 ui/ozone/platform/wayland/host/wayland_output.h | 1 ui/ozone/platform/wayland/host/wayland_output_unittest.cc | 32 ui/ozone/platform/wayland/host/xdg_output.cc | 23 ui/ozone/platform/wayland/host/xdg_output.h | 1 ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc | 2 v8/include/v8-version.h | 2 v8/src/builtins/builtins-array.cc | 2 v8/tools/builtins-pgo/profiles/x64-rl.profile | 2418 ++++----- v8/tools/builtins-pgo/profiles/x64.profile | 2251 ++++---- v8/tools/builtins-pgo/profiles/x86-rl.profile | 2575 +++++----- v8/tools/builtins-pgo/profiles/x86.profile | 2266 ++++---- 240 files changed, 9194 insertions(+), 6024 deletions(-) diff -Nru chromium-125.0.6422.60/DEPS chromium-125.0.6422.76/DEPS --- chromium-125.0.6422.60/DEPS 2024-05-15 21:45:46.000000000 +0000 +++ chromium-125.0.6422.76/DEPS 2024-05-21 22:42:45.000000000 +0000 @@ -316,11 +316,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '381971682dd0d64ee1935efd6d98b334feb79ee0', + 'v8_revision': '6a1ef22a33a359dd016c6dd3631053fce66f19a2', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'f4447386db891f772a4472864834612b23d5f525', + 'angle_revision': '4f60fa7020e5357d648a35cc6cdba1213dbf3b6f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -427,7 +427,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '1346aaee0b017cb0bace682ea165c17e01e5b231', + 'dawn_revision': 'bfe28e306e60e986c73adf25cacfc3d246fd1d10', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. diff -Nru chromium-125.0.6422.60/ash/app_list/views/app_list_search_view_unittest.cc chromium-125.0.6422.76/ash/app_list/views/app_list_search_view_unittest.cc --- chromium-125.0.6422.60/ash/app_list/views/app_list_search_view_unittest.cc 2024-05-15 21:45:47.000000000 +0000 +++ chromium-125.0.6422.76/ash/app_list/views/app_list_search_view_unittest.cc 2024-05-21 22:42:45.000000000 +0000 @@ -659,6 +659,60 @@ app_list_client->set_search_callback(TestAppListClient::SearchCallback()); } +TEST_P(SearchResultImageViewTest, + TypingInitialCharacterWithMenuOpenTogglesCheckbox) { + GetAppListTestHelper()->ShowAppList(); + auto* app_list_client = GetAppListTestHelper()->app_list_client(); + + app_list_client->set_available_categories_for_test( + {AppListSearchControlCategory::kApps, + AppListSearchControlCategory::kFiles, + AppListSearchControlCategory::kWeb}); + + // Press a character key to open the search. + PressAndReleaseKey(ui::VKEY_A); + GetSearchBoxView()->GetWidget()->LayoutRootViewIfNecessary(); + views::ImageButton* filter_button = GetSearchBoxView()->filter_button(); + EXPECT_TRUE(filter_button->GetVisible()); + + // Open the filter menu. + LeftClickOn(filter_button); + EXPECT_TRUE(GetSearchBoxView()->IsFilterMenuOpen()); + + // Set up the search callback to notify that the search is triggered. + bool is_search_triggered = false; + app_list_client->set_search_callback(base::BindLambdaForTesting( + [&](const std::u16string& query) { is_search_triggered = true; })); + + // Toggleable categories are on by default. + PrefService* prefs = + Shell::Get()->session_controller()->GetLastActiveUserPrefService(); + EXPECT_TRUE(prefs->GetDict(prefs::kLauncherSearchCategoryControlStatus) + .FindBool(GetAppListControlCategoryName( + AppListSearchControlCategory::kApps)) + .value_or(true)); + + // Pressing a key that is not an initial of the items does not do anything to + // the menu. + PressAndReleaseKey(ui::VKEY_X); + EXPECT_TRUE(GetSearchBoxView()->IsFilterMenuOpen()); + + // As "A" is the initial character if "Apps", the corresponding menu item is + // automatically toggled and the menu is closed. + PressAndReleaseKey(ui::VKEY_A); + std::optional apps_search_enabled = + prefs->GetDict(prefs::kLauncherSearchCategoryControlStatus) + .FindBool(GetAppListControlCategoryName( + AppListSearchControlCategory::kApps)); + ASSERT_TRUE(apps_search_enabled.has_value()); + EXPECT_FALSE(*apps_search_enabled); + EXPECT_FALSE(GetSearchBoxView()->IsFilterMenuOpen()); + EXPECT_TRUE(is_search_triggered); + + // Reset the search callback. + app_list_client->set_search_callback(TestAppListClient::SearchCallback()); +} + // Verifies that the filter button and all menu items in the search category // filter have tooltips. TEST_P(SearchResultImageViewTest, SearchCategoryMenuItemTooltips) { diff -Nru chromium-125.0.6422.60/ash/app_list/views/search_box_view.cc chromium-125.0.6422.76/ash/app_list/views/search_box_view.cc --- chromium-125.0.6422.60/ash/app_list/views/search_box_view.cc 2024-05-15 21:45:47.000000000 +0000 +++ chromium-125.0.6422.76/ash/app_list/views/search_box_view.cc 2024-05-21 22:42:45.000000000 +0000 @@ -437,7 +437,6 @@ // Returns the menu item view at `index` in the category filter menu. This // should only be called when the menu is opened. views::MenuItemView* GetFilterMenuItemByIdx(int index) { - CHECK(IsFilterMenuOpen()); return filter_menu_root_->GetSubmenu()->GetMenuItemAt(index); } diff -Nru chromium-125.0.6422.60/ash/strings/ash_strings_ca.xtb chromium-125.0.6422.76/ash/strings/ash_strings_ca.xtb --- chromium-125.0.6422.60/ash/strings/ash_strings_ca.xtb 2024-05-15 21:45:48.000000000 +0000 +++ chromium-125.0.6422.76/ash/strings/ash_strings_ca.xtb 2024-05-21 22:42:45.000000000 +0000 @@ -276,7 +276,7 @@ Bona nit, , Obre el selector d'emojis jocs -No hi ha connexió a la xarxa +No hi ha connexió de xarxa Un altre botó El teu cable USB-C no admet Thunderbolt. És possible que el rendiment del dispositiu es vegi limitat. La tecla de drecera Alt+Retrocés ha canviat. Per fer servir la tecla de suprimir, prem la tecla +Retrocés. @@ -884,7 +884,7 @@ Veuràs el porta-retalls quan mantinguis premudes les tecles Ctrl+V. Pots desactivar aquesta drecera desactivant la marca #clipboard-history-longpress a chrome://flags (os://flags si utilitzes Lacros). Bon vespre, Atura la gravació de pantalla -Connexió a una xarxa Wi-Fi +Connexió de xarxa Wi-Fi S'estan baixant els fitxers de reconeixement de parla... % {0,plural, =0{Actualitza el dispositiu ara}=1{Actualitza el dispositiu en 1 segon}other{Actualitza el dispositiu en # segons}} Comença @@ -990,7 +990,7 @@ Menú per seleccionar el teclat Reprodueix o posa en pausa el contingut multimèdia i després , , o -Comprova la connexió a la xarxa per baixar +Comprova la connexió de xarxa per baixar S'està iniciant la sessió... Escriptori 15 activada @@ -1639,7 +1639,7 @@ El mode d'estalvi de bateria està desactivat Activat Fes clic amb el botó dret en qualsevol lloc per tornar a ordenar les aplicacions -Commuta la connexió a la xarxa. . +Commuta la connexió de xarxa. . Pots ajustar aquesta funció més endavant des de Configuració. Fes una captura o una gravació de pantalla completes Introdueix el codi d'accés parental de Family Link per desbloquejar el dispositiu diff -Nru chromium-125.0.6422.60/ash/strings/ash_strings_iw.xtb chromium-125.0.6422.76/ash/strings/ash_strings_iw.xtb --- chromium-125.0.6422.60/ash/strings/ash_strings_iw.xtb 2024-05-15 21:45:48.000000000 +0000 +++ chromium-125.0.6422.76/ash/strings/ash_strings_iw.xtb 2024-05-21 22:42:45.000000000 +0000 @@ -1545,7 +1545,7 @@ ‏מקשי הקיצור Alt + חץ למעלה הוחלפו. כדי לדמות את הפעולה של המקש Page Up, יש להקיש על + החץ למעלה. הפריים האוטומטי מושבת במצלמה. אישור -‏התקני HID +‏מכשירי ממשק אנושי (HID) תחילת העבודה Google Drive ‏מקש Insert diff -Nru chromium-125.0.6422.60/ash/webui/common/resources/sea_pen/sea_pen_chip_text_element.ts chromium-125.0.6422.76/ash/webui/common/resources/sea_pen/sea_pen_chip_text_element.ts --- chromium-125.0.6422.60/ash/webui/common/resources/sea_pen/sea_pen_chip_text_element.ts 2024-05-15 21:45:49.000000000 +0000 +++ chromium-125.0.6422.76/ash/webui/common/resources/sea_pen/sea_pen_chip_text_element.ts 2024-05-21 22:42:46.000000000 +0000 @@ -121,6 +121,10 @@ // option of the new template. if (chip.childElementCount > 0) { this.removeLetterElementsFromChip_(chip.childElementCount); + } + // Update the chip innerHTML with the new chip text value if its value is + // not automatically updated. + if (chip!.innerHTML !== newText) { chip!.innerHTML = sanitizeInnerHtml(newText); } return; diff -Nru chromium-125.0.6422.60/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc chromium-125.0.6422.76/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc --- chromium-125.0.6422.60/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc 2024-05-15 21:45:49.000000000 +0000 +++ chromium-125.0.6422.76/ash/wm/gestures/back_gesture/back_gesture_event_handler.cc 2024-05-21 22:42:46.000000000 +0000 @@ -29,6 +29,7 @@ #include "ash/wm/window_util.h" #include "ash/wm/wm_event.h" #include "base/containers/contains.h" +#include "base/debug/crash_logging.h" #include "base/i18n/rtl.h" #include "base/metrics/user_metrics.h" #include "chromeos/ui/base/window_properties.h" @@ -357,6 +358,11 @@ // with large enough velocity. Note, complete can be different actions // while in different scenarios, but always fading out the affordance at // the end. + SCOPED_CRASH_KEY_BOOL("286590216", "back_gesture_affordance_1", + back_gesture_affordance_ != nullptr); + SCOPED_CRASH_KEY_BOOL("286590216", "going_back_started_1", + going_back_started_); + SCOPED_CRASH_KEY_NUMBER("286590216", "event.type", event->type()); if (back_gesture_affordance_->IsActivated() || (event->type() == ui::ET_SCROLL_FLING_START && event->details().velocity_x() >= kFlingVelocityForGoingBack)) { @@ -419,6 +425,10 @@ } } } + SCOPED_CRASH_KEY_BOOL("286590216", "back_gesture_affordance_2", + back_gesture_affordance_ != nullptr); + SCOPED_CRASH_KEY_BOOL("286590216", "going_back_started_2", + going_back_started_); back_gesture_affordance_->Complete(); } else { back_gesture_affordance_->Abort(); diff -Nru chromium-125.0.6422.60/build/util/LASTCHANGE chromium-125.0.6422.76/build/util/LASTCHANGE --- chromium-125.0.6422.60/build/util/LASTCHANGE 2024-05-15 21:49:08.000000000 +0000 +++ chromium-125.0.6422.76/build/util/LASTCHANGE 2024-05-21 22:51:29.000000000 +0000 @@ -1,2 +1,2 @@ -LASTCHANGE=3ac3319bff9f3e139d632e3d195e3d2d43d86e37-refs/branch-heads/6422@{#1017} +LASTCHANGE=67dcf7562b8fb4ab0819135589e37a97bcc8942c-refs/branch-heads/6422@{#1086} LASTCHANGE_YEAR=2024 diff -Nru chromium-125.0.6422.60/build/util/LASTCHANGE.committime chromium-125.0.6422.76/build/util/LASTCHANGE.committime --- chromium-125.0.6422.60/build/util/LASTCHANGE.committime 2024-05-15 21:49:08.000000000 +0000 +++ chromium-125.0.6422.76/build/util/LASTCHANGE.committime 2024-05-21 22:51:29.000000000 +0000 @@ -1 +1 @@ -1715714404 \ No newline at end of file +1716235359 \ No newline at end of file diff -Nru chromium-125.0.6422.60/chrome/LACROS_QA_QUALIFIED_VERSION chromium-125.0.6422.76/chrome/LACROS_QA_QUALIFIED_VERSION --- chromium-125.0.6422.60/chrome/LACROS_QA_QUALIFIED_VERSION 2024-05-15 21:45:50.000000000 +0000 +++ chromium-125.0.6422.76/chrome/LACROS_QA_QUALIFIED_VERSION 2024-05-21 22:42:47.000000000 +0000 @@ -1 +1 @@ -125.0.6422.41 \ No newline at end of file +125.0.6422.60 \ No newline at end of file diff -Nru chromium-125.0.6422.60/chrome/VERSION chromium-125.0.6422.76/chrome/VERSION --- chromium-125.0.6422.60/chrome/VERSION 2024-05-15 21:45:50.000000000 +0000 +++ chromium-125.0.6422.76/chrome/VERSION 2024-05-21 22:42:47.000000000 +0000 @@ -1,4 +1,4 @@ MAJOR=125 MINOR=0 BUILD=6422 -PATCH=60 +PATCH=76 diff -Nru chromium-125.0.6422.60/chrome/app/resources/chromium_strings_sv.xtb chromium-125.0.6422.76/chrome/app/resources/chromium_strings_sv.xtb --- chromium-125.0.6422.60/chrome/app/resources/chromium_strings_sv.xtb 2024-05-15 21:45:52.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/chromium_strings_sv.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -413,7 +413,7 @@ Tillägg, appar och teman från okända källor kan skada enheten. Vi rekommenderar att du bara installerar dem från När du har gett Chromium åtkomst kan webbplatser begära att få åtkomst. Tack för att du installerat programmet. Du måste starta om alla webbläsare innan du använder . -Installationen misslyckades eftersom datorn inte uppfyller minimikraven för maskinvara. +Installationen misslyckades eftersom datorn inte uppfyller minimikraven för hårdvara. – Google Chrome for Testing Du behöver ge Chromium platsbehörighet för den här webbplatsen Det gick inte att synkronisera data med Chromium OS eftersom synkronisering inte är tillgängligt för domänen. diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_ar.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_ar.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_ar.xtb 2024-05-15 21:45:52.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_ar.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -5395,7 +5395,7 @@ محتوى غير آمن محظور تلقائيًا على مواقع إلكترونية آمنة وضع إشارات على كل علامات التبويب رقم التعريف الشخصي غير صحيح -إضافة شبكة افتراضية خاصة مُدمجة... +‏إضافة شبكة VPN مضمّنة... يمكنك الآن استخدام مجموعات علامات التبويب المحفوظة على أجهزة الكمبيوتر المكتبي التي تم تسجيل الدخول إليها. ‏بعد تفعيل المزامنة، ستصبح تطبيقاتك متاحة على أي أجهزة ChromeOS في حال سجّلت الدخول إليها باستخدام حسابك على Google. ستتم مزامنة تطبيقات الويب المثبَّتة من خلال متصفّح Chrome، حتى في حال إيقاف مزامنة المتصفّح. ‏تحديث تذكرة Kerberos diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_ca.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_ca.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_ca.xtb 2024-05-15 21:45:52.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_ca.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -835,7 +835,7 @@ {NUM_FILES,plural, =0{S'està comprovant si aquestes dades compleixen les polítiques de seguretat de la teva organització...}=1{S'està comprovant si aquest fitxer compleix les polítiques de seguretat de la teva organització...}other{S'està comprovant si aquests fitxers compleixen les polítiques de seguretat de la teva organització...}} / Centre d'ajuda -No s'ha pogut connectar a Google Play. Comprova la connexió a la xarxa i torna-ho a provar. Codi d'error: . +No s'ha pogut connectar a Google Play. Comprova la connexió de xarxa i torna-ho a provar. Codi d'error: . La contrasenya no és correcta. Torna-ho a provar o fes clic a l'opció Has oblidat la contrasenya? per restablir-la. Càmera Eina de text @@ -1830,7 +1830,7 @@ El teu fill pot utilitzar un número (PIN) en lloc d'una contrasenya per desbloquejar aquest dispositiu. Per definir el PIN més endavant, ves a Configuració. Les adreces d'interès s'han afegit Posa el focus en aquesta pestanya -No s'ha pogut connectar amb el servidor. Comprova la connexió a la xarxa i torna-ho a provar. Si encara tens problemes, prova de reiniciar el Chromebook. +No s'ha pogut connectar amb el servidor. Comprova la connexió de xarxa i torna-ho a provar. Si encara tens problemes, prova de reiniciar el Chromebook. Passat desembre de 2022, les versions anteriors d'Aplicacions de Chrome no s'obriran. Contacta amb l'administrador perquè actualitzi l'aplicació a una versió nova o perquè la suprimeixi. Aplicació: . S'ha sol·licitat permís, prem Ctrl+Endavant per respondre @@ -1940,7 +1940,7 @@ Descriu què feies quan la pestanya s'ha bloquejat Desactiva la Wi‑Fi aquests carretons -L'Assistent de Google no s'ha pogut carregar. Comprova la connexió a la xarxa i tornar-ho a provar. +L'Assistent de Google no s'ha pogut carregar. Comprova la connexió de xarxa i tornar-ho a provar. La teva organització limita la inscripció de dispositius només als usuaris autoritzats. Aquest usuari no té autorització per inscriure dispositius. Assegura't que l'usuari tingui el privilegi d'administrador "Inscriure maquinari de Google Meet" a la secció de la consola d'administració Usuaris. Cancel·la la baixada Afegiu un paràmetre de consulta a l'URL per actualitzar la pàgina automàticament: chrome://network/?refresh=<seg.> @@ -2117,7 +2117,7 @@ Vols optimitzar l'emissió en pantalla completa? La càmera i el micròfon no es permeten S'ha establert l'hora de dormir nova -Estableix el nivell de depuració del gestor de connexions a la xarxa i altres serveis mitjançant ff_debug. +Estableix el nivell de depuració del gestor de connexions de xarxa i altres serveis mitjançant ff_debug. {NUM_SUB_APP_INSTALLS,plural, =1{Els permisos que concedeixis a també es concediran a aquesta aplicació. }other{Els permisos que concedeixis a també es concediran a aquestes aplicacions. }} Aquesta pestanya No permetis que els llocs web utilitzin identificadors per reproduir contingut protegit @@ -2180,7 +2180,7 @@ Neteja l'ordinador Voice Match està a punt Els llocs web solen demanar informació sobre les pantalles perquè puguin obrir i col·locar finestres de manera intel·ligent, com ara mostrar documents o contingut en pantalla completa en paral·lel -Error de connexió a la xarxa +Error de connexió de xarxa S'ha emplenat el formulari d'adreces de . Per veure les opcions de Better Together, ves a Configuració. Enllaça les dades @@ -2602,7 +2602,7 @@ Obre fitxers de Word, d'Excel i de PowerPoint Addició d'una galeria multimèdia per directori Torna a prémer per suprimir l'assignació i -No s'ha pogut connectar amb els serveis de Google. Comprova la connexió a la xarxa i torna-ho a provar. Codi d'error: . +No s'ha pogut connectar amb els serveis de Google. Comprova la connexió de xarxa i torna-ho a provar. Codi d'error: . Connecta't a una xarxa i torna-ho a provar S'ha produït un error. Torna-ho a provar o contacta amb el propietari o l'administrador del dispositiu. Codi d'error: . Tanca les finestres @@ -2791,7 +2791,7 @@ Queda molt poc espai de disc de Linux Previsualització del micròfon Pàgina web completa -Motors de veu +Motors de parla Dispositius d'interfície humana del proveïdor Registres d'emissions i dispositius Mida de visualització @@ -3375,7 +3375,7 @@ Microsoft 365 no pot obrir des d'aquesta carpeta Trobaràs la llista de lectura i les adreces d'interès a Adreces d'interès i llistes Gestió de la sincronització -S'està establint la connexió a la xarxa... +S'està establint la connexió de xarxa... {NUM_OF_FILES,plural, =1{S'està movent 1 fitxer a }other{S'estan movent {NUM_OF_FILES} fitxers a }} : l'àudio està desactivat Connecta per accedir als teus fitxers de Drive des de l'aplicació Fitxers @@ -4328,7 +4328,7 @@ Obre sempre a Adobe Reader No hi ha cap càmera connectada Estalvi de bateria -S'està esperant la connexió a la xarxa... +S'està esperant la connexió de xarxa... S'ha bloquejat l'accés d'aquesta pàgina a la càmera i al micròfon Les aplicacions s'han de distribuir des de l'amfitrió que afecten Captura de pantalla @@ -5018,7 +5018,7 @@ Estàs utilitzant una clau de seguretat que no està registrada en aquest lloc web Cancel·la la retallada Edita la clau d'accés per al nom d'usuari: -Comprova la connexió a la xarxa i torna-ho a provar. +Comprova la connexió de xarxa i torna-ho a provar. No es poden instal·lar els fitxers de parla. Cal actualitzar el dispositiu. Reinicia'l i torna-ho a provar. Mostra una notificació quan hi hagi dispositius compartint contingut a prop (UDP) @@ -5383,7 +5383,7 @@ Torna a les baixades recents Mostra els detalls de la protecció estàndard Mostra les adreces d'interès gestionades -Les condicions del servei de Google Play no es poden carregar. Comprova la connexió a la xarxa i torna-ho a provar. +Les condicions del servei de Google Play no es poden carregar. Comprova la connexió de xarxa i torna-ho a provar. {0,plural,offset:2 =1{}=2{ i }other{, i # més}} És possible que hàgiu de tornar a carregar aquesta pàgina perquè s'apliqui la configuració nova. Es continua necessitant permís per completar la configuració @@ -5862,7 +5862,7 @@ Afegeix totes les pestanyes a les adreces d'interès Tanca la &finestra Selecciona una drecera per a cada acció -No hi ha connexió a la xarxa +No hi ha connexió de xarxa Ara pots consultar les aplicacions, els fitxers multimèdia i les fotos recents del telèfon (funciona sense connexió) El teu fill o filla pot utilitzar totes les aplicacions, les adreces d'interès i els recursos del centre educatiu tal com ho fa a classe. El centre educatiu estableix les regles bàsiques. @@ -7240,7 +7240,7 @@ Resultat de cerca de : . Prem Retorn per navegar a la secció. Els llocs web solen utilitzar els teus tipus de lletra perquè puguis crear continguts d'alta fidelitat amb eines de disseny i de gràfics en línia El gestor de contrasenyes de Google no ha pogut desar aquestes contrasenyes al teu Compte de Google. Pots desar-les en aquest dispositiu. -Tens connexió a una xarxa . +Tens connexió de xarxa . Fes clic a Instal·la Comparteix No hi ha cap dispositiu disponible. Afegeix el teu Compte de Google al telèfon per connectar-lo a aquest dispositiu (). Més informació @@ -7252,7 +7252,7 @@ Desa a Google Drive Desa els canvis Seguretat i inici de sessió -L'inici de sessió ha fallat perquè no s'ha pogut recuperar el testimoni d'accés. Comprova la connexió a la xarxa i torna-ho a provar. +L'inici de sessió ha fallat perquè no s'ha pogut recuperar el testimoni d'accés. Comprova la connexió de xarxa i torna-ho a provar. Inscrit en una empresa Utilitza el Traductor de Google Prem les tecles de fletxa per reduir o ampliar l'àrea de visualització. Per moure l'àrea de visualització, prem Maj i +. Després, fes servir les tecles de fletxa. @@ -7377,7 +7377,7 @@ Més seguretat L'extensió vol tenir accés permanent a un certificat per autenticar-se en nom vostre. Ningú no pot compartir contingut amb tu fins que no et facis visible.Per fer-te visible temporalment, obre l'àrea d'estat i, després, activa Visibilitat Nearby. -No es pot establir cap connexió a la xarxa. Comprova la connexió a la xarxa i torna-ho a provar. +No es pot establir cap connexió de xarxa. Comprova la connexió de xarxa i torna-ho a provar. Consulta quines extensions poden llegir un lloc web o fer-hi modificacions El propietari pot controlar aquesta funció des de Configuració > Configuració avançada > Envia automàticament dades de diagnòstic i d'ús a Google. Explora més opcions de configuració a continuació o acaba ara @@ -7483,7 +7483,7 @@ No ofereixis mai traduir d'aquests idiomes S'ha produït un error en instal·lar l'aplicació per a Linux. Fes clic a la notificació per veure'n els detalls. Res no pot utilitzar la teva ubicació. Tanmateix, és possible que la teva ubicació continuï sent visible per a les aplicacions i per als llocs web a través de l'adreça IP. Més informació -S'ha perdut la connexió a la xarxa. Comprova la connexió o prova una altra xarxa Wi-Fi. +S'ha perdut la connexió de xarxa. Comprova la connexió o prova una altra xarxa Wi-Fi. Els colors del tema de Chrome s'han actualitzat per funcionar millor per a tothom, tant en mode fosc com en mode clar Pantalla de bloqueig També pot ser que et demanem més informació o t'enviem novetats per correu electrònic @@ -8384,7 +8384,7 @@ Configuració completada Reconeix la semàntica del disseny visual Escriu una ressenya sobre -Les condicions del servei no es poden carregar. Comprova la connexió a la xarxa i torna-ho a provar. +Les condicions del servei no es poden carregar. Comprova la connexió de xarxa i torna-ho a provar. Error de la xarxa desconegut. Aquesta aplicació no requereix cap permís especial. No s'ha afegit cap nom d'usuari @@ -8554,7 +8554,7 @@ Activa les funcions de depuració en aquest dispositiu Inscriu el dispositiu Demana al teu pare o mare que permeti una extensió -No s'ha pogut connectar amb el servidor. Comprova la connexió a la xarxa i torna-ho a provar. Si encara tens problemes, prova de reiniciar el Chromebook. Codi d'error: . +No s'ha pogut connectar amb el servidor. Comprova la connexió de xarxa i torna-ho a provar. Si encara tens problemes, prova de reiniciar el Chromebook. Codi d'error: . Advertiment: la vostra configuració de s'emmagatzema en una unitat de xarxa. Això pot provocar alentiments, bloquejos o fins i tot la pèrdua de dades. Les extensions no es permeten en aquest lloc web. Selecciona per obrir el menú. Còctel @@ -9330,7 +9330,7 @@ està fent servir la connexió del servidor intermediari d'una extensió Primer, l'administrador ha d'acceptar les condicions del servei de la llista de dispositius Chrome que hi ha a la consola d'administració. Vols instal·lar i esborrar les dades de la unitat de disc dur? -Cal una connexió a la xarxa +Cal una connexió de xarxa Utilitza les contrasenyes desades en qualsevol dispositiu S'ha seleccionat . Prem Cerca+Espai per desseleccionar-lo. Crea, desa i gestiona les teves contrasenyes de manera que puguis iniciar la sessió fàcilment en llocs web i aplicacions. Més informació @@ -9615,7 +9615,7 @@ Opcions d'Estalvi de memòria D'iCloud Keychain S'està activant... -Afegeix una connexió a la xarxa +Afegeix una connexió de xarxa copiar les contrasenyes Utilitza la visualització de pantalla dividida per veure l'àrea ampliada de la pantalla. Fes servir Cerca+Ctrl+D per activar i desactivar la lupa acoblada. Ús ampliat de claus @@ -10361,7 +10361,7 @@ &Mostra com a pestanya Recorda la informació d'inici de sessió Cerc&a aquesta pàgina amb Google... -No es pot baixar la llista de contactes. Comprova la connexió a la xarxa o torna-ho a provar. +No es pot baixar la llista de contactes. Comprova la connexió de xarxa o torna-ho a provar. Torna-ho a provar. Per obtenir assistència tècnica, contacta amb . Configuració del ratolí i del ratolí tàctil Activa l'acceleració del ratolí tàctil @@ -10748,7 +10748,7 @@ 0,8 segons No s'han pogut configurar les actualitzacions automàtiques per a tots els usuaris (error de comprovació preliminar: ) La impressora té la porta oberta -S'ha produït un problema de comunicació de xarxa durant l'autenticació. Comproveu la connexió a la xarxa i torneu-ho a provar. +S'ha produït un problema de comunicació de xarxa durant l'autenticació. Comproveu la connexió de xarxa i torneu-ho a provar. La &sincronització està activada Prova de fer el següent: diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_eu.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_eu.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_eu.xtb 2024-05-15 21:45:53.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_eu.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -3043,7 +3043,7 @@ Kargatu irudia Ez erakutsi Aktibatu sinkronizazioa, zure gauzen babeskopiak egin eta edozein gailutan erabil ditzazun -Anil argia eta zuria +Berde urdinxka argia eta zuria {COUNT,plural, =1{Fitxategia}other{# fitxategi}} Aldea deskargatzen Irakurri, aldatu eta ezabatu ordenagailuko argazkiak, musika eta bestelako multimedia-edukia @@ -10253,7 +10253,7 @@ Eman fitxak antolatzeko baimena Chrome-ri Web Store Katua -Anil argia +Berde urdinxka argia Crostini-ren mikrofonorako sarbidea Baliteke luzapena atzeko planoan exekutatzea Garbitu arakatze-datuak ere (); hala, webguneko saioa amaituko da. @@ -10405,7 +10405,7 @@ Ezabatu datuak eta baimenak Hautatu "Keinu gehiago" fitxa. Gero, aktibatu "Orri batetik bestera aldatzeko hatza pasatzea" aukera, atzera eta aurrera nabigatzeko. Mugitu pantaila sagua pantailaren ertzera iristen denean -Anil iluna +Berde urdinxka iluna Izenaren barra ezkutatuta dago orain &Ezarpenak Ez galdetu berriro diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_fr-CA.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_fr-CA.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_fr-CA.xtb 2024-05-15 21:45:53.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_fr-CA.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -8653,7 +8653,7 @@ Non autorisé à utiliser les renseignements enregistrés à votre sujet Vous ne pourrez pas récupérer les données locales si vous oubliez votre mot de passe ou votre NIP. Charge en cours… -Les sites font généralement appel à des modules de paiement pour proposer certaines fonctionnalités d'achat, comme un paiement plus simple +Les sites font généralement appel à des modules de traitement des paiements pour proposer certaines fonctionnalités d'achat, comme un paiement simplifié Passer à l'onglet capturé verrouillage des majuscules désactivé Ajouter un nouveau profil diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_hu.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_hu.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_hu.xtb 2024-05-15 21:45:53.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_hu.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -175,7 +175,7 @@ Folyamatban van a Linux konfigurálása. A folyamat néhány percig tart. Keresőmotor beállítása Megtekintheti a telefonon található fotókat és médiatartalmakat -Alkalmazáskezelés +Appok kezelése A profilok megkülönböztetéséhez adjon meg nevet és színtémát – a(z) csoport része Jobb akkumulátorszint: %. diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_iw.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_iw.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_iw.xtb 2024-05-15 21:45:54.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_iw.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -1060,7 +1060,7 @@ דיווח על תוכן פוגעני או לא בטוח. הגדרת 'שיתוף בקרבת מקום' מאפשרת לך לשתף קבצים עם אנשים אחרים בסביבה ולקבל מהם קבצים קוד אימות נוכחי -ייפתח דף 'כרטיסייה חדשה' +פתיחת הדף 'כרטיסייה חדשה' שפה מדוברת חשבונות וסנכרון שיתוף האודיו מהחלון @@ -6065,7 +6065,7 @@ אם ההגדרה הנוספת של פעילות באינטרנט ובאפליקציות מופעלת, ייתכן שהנתונים האלה יישמרו בחשבון Google שלך. את הנתונים אפשר להציג, למחוק ולשנות דרך הגדרות החשבון בכתובת account.google.com. כרטיסיות לא ניתן ליצור תיקיית סימניות. -ייפתחו דף מסוים או קבוצת דפים +פתיחה של דף מסוים או קבוצת דפים אין מספיק שטח אחסון במכשיר. כדי להשתמש באפליקציה , נדרש שטח אחסון פנוי של . כדי לפנות שטח אחסון, יש למחוק קבצים מהמכשיר. הפרמוט נכשל כדי לשתף, לוחצים לחיצה ימנית על תיקייה באפליקציה 'קבצים' ובוחרים באפשרות 'שיתוף עם '. @@ -6663,7 +6663,7 @@ נחסמה היכולת של האתר הזה להשתמש בחיישני התנועה והתאורה. ‏כרטיסיות Chrome אחרונות היררכיית אישורים -‏מכשירי USB +‏התקני USB התראה נשלחה אל אין אפליקציות שמורשות להשתמש במיקום ‏יצירת קוד QR diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_ja.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_ja.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_ja.xtb 2024-05-15 21:45:54.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_ja.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -7680,7 +7680,7 @@ Powerwash を実行する前に eSIM プロファイルを削除してください プロキシの設定... -保存して共有(&S) +保存と共有(&S) タブで開く に対するその他の操作 名前は 32 文字以内にしてください @@ -9078,7 +9078,7 @@ 新しい Wi-Fi ネットワーク ダイアログ 共有フォルダは Linux では にあります。 {NUM_TABS,plural, =1{サイトのミュートを解除}other{サイトのミュートを解除}} -保存して共有(&S) +保存と共有(&S) ページを保存して後で読むには、ブックマーク アイコンをクリックします 共有フォルダを管理する [キャンセル] をクリックすると、ブラウザのデータに影響する可能性があり、出荷時の設定へのリセットが必要になることがあります。 diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_ky.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_ky.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_ky.xtb 2024-05-15 21:45:54.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_ky.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -4275,7 +4275,7 @@ менен аласызбы? {NUM_SITES,plural, =1{1 колдонулбаган сайттын уруксаттары өчүрүлдү}other{{NUM_SITES} колдонулбаган сайттын уруксаттары өчүрүлдү}} үчүн гана. - Генеративдүү жасалма интеллект сынамык функция жана иштеп чыгуунун алгачкы баскычында болгондуктан, учурда жеткиликтүүлүгү чектелген. + Жаратуучу жасалма интеллект сынамык функция жана иштеп чыгуунун алгачкы баскычында болгондуктан, учурда жеткиликтүүлүгү чектелген. Ишенимдүү тастыктама борбору Карталарды көрсөтүү Бул профилди өчүрүүгө болбойт @@ -8998,7 +8998,7 @@ Убакыт аралыгы Эстеткич: Көз салуудан коргоо күйүк Тынчымды алба -ChromeOS түзмөктөрүңүзгө кабарларды автоматтык түрдө жөнөтүүгө уруксат берсеңиз, ChromeOS'то кайсы нерселерди оңдоп жана жакшыртуу маанилүү экенин биле алабыз. Бул кабарларда ChromeOS'тун бузулуусу, адатта кайсы функцияларды жана канча эстутум колдоноруңуз, Android колдонмосундагы мүчүлүштүктөрдү аныктоо жана колдонуу статистикасы сыяктуу маалымат камтылышы мүмкүн. Айрым маалыматты бириктирүү Google колдонмолоруна жана Android'дин иштеп чыгуучулары сыяктуу өнөктөштөрүнө да жардам берет. +ChromeOS түзмөктөрүңүзгө кабарларды автоматтык түрдө жөнөтүүгө уруксат берсеңиз, ChromeOS'то кайсы нерселерди оңдоп жана жакшыртуу маанилүү экенин биле алабыз. Бул кабарларда ChromeOS'тун бузулуусу, адатта кайсы функцияларды жана канча эстутум колдоноруңуз, Android колдонмосундагы мүчүлүштүктөрдү аныктоо жана колдонуу статистикасы сыяктуу маалымат камтылышы мүмкүн. Айрым маалыматтарды Android'ди иштеп чыгуучулар сыяктуу өнөктөштөрүбүзгө берип, Google колдонмолорун жакшыртабыз. Каалаган убакта ChromeOS түзмөгүңүздүн параметрлерине өтүп, бул кабарларга уруксат берип же тыюу сала аласыз. Эгер сиз домен администратору болсоңуз, бул параметрди администратордун консолунан өзгөртө аласыз. Эгер Google аккаунтуңуз үчүн Колдонмолор жана Интернеттеги аракеттер таржымалы күйгүзүлгөн болсо, Android'деги маалыматыңыз Google аккаунтуңузга сакталышы мүмкүн. Маалыматты көрүп, өчүрүп жана аккаунтуңуздун параметрлерин өзгөртүү үчүн төмөнкү дарекке өтүңүз: account.google.com. Эскертүү: Үнү сиздикине окшош же аны жаздырып алган адамга Жардамчыңыз жана ал аткарган нерселер жеткиликтүү болушу мүмкүн. Батареяны үнөмдөө үчүн Жардамчыңыздын параметрлеринен бул түзмөк кубат булагына туташып турганда гана "Oкей, Google" күйгөндөй кылып жөндөсөңүз болот. @@ -9842,7 +9842,7 @@ Билдирмелерге уруксат берүү Chrome'дун ишин өзгөртө турган кеңейтүүнү компьютериңиздеги башка программа кошуп койду. ChromeVox сүйлөп жатканда аудио тындырылсын -ChromeOS түзмөктөрүнө кабарларды автоматтык түрдө жөнөтүүгө уруксат берсеңиз, ChromeOS'то кайсы нерселерди оңдоп жана жакшыртуу маанилүү экенин биле алабыз. Мындай кабарларда ChromeOS'тун бузулуусу, колдонулган функциялар, канча эстутум колдонулгандыгы, ошондой эле Android колдонмолорунда мүчүлүштүктөрдү аныктоо жана колдонуу статистикасы сыяктуу маалымат камтылышы мүмкүн. Айрым маалыматты бириктирүү Google колдонмолоруна жана Android'дин иштеп чыгуучулары сыяктуу өнөктөштөрүнө да жардам берет. +ChromeOS түзмөктөрүнө кабарларды автоматтык түрдө жөнөтүүгө уруксат берсеңиз, ChromeOS'то кайсы нерселерди оңдоп жана жакшыртуу маанилүү экенин биле алабыз. Мындай кабарларда ChromeOS'тун бузулуусу, колдонулган функциялар, канча эстутум колдонулгандыгы, ошондой эле Android колдонмолорунда мүчүлүштүктөрдү аныктоо жана колдонуу статистикасы сыяктуу маалымат камтылышы мүмкүн. Айрым маалыматтарды Android'ди иштеп чыгуучулар сыяктуу өнөктөштөрүбүзгө берип, Google колдонмолорун жакшыртабыз. Каалаган убакта балаңыздын ChromeOS түзмөгүнүн параметрлерине өтүп, бул кабарларга уруксат берип же тыюу сала аласыз. Эгер сиз домен администратору болсоңуз, бул параметрди администратордун консолунан өзгөртө аласыз. Эгер Колдонмолор жана Интернеттеги аракеттер таржымалы балаңыздын Google аккаунту үчүн күйгүзүлгөн болсо, балаңыздын маалыматы анын Google аккаунтуна сакталышы мүмкүн. Төмөнкү шилтеме менен өтүп, бул параметрлер жана аларды кантип тууралоо керек экендиги жөнүндө кеңири маалымат алыңыз: families.google.com. Файлдын сырсөзүн териңиз diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_ml.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_ml.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_ml.xtb 2024-05-15 21:45:55.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_ml.xtb 2024-05-21 22:42:48.000000000 +0000 @@ -9517,7 +9517,7 @@ നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ് ചെയ്യാനും സംഭാഷണം വിശകലനം ചെയ്യാനും Chrome നുറുങ്ങുകൾ OEM ഫോൾഡർ -ബാറ്ററി ലാഭിക്കൽ +ബാറ്ററി സേവർ സ്‌റ്റോറേജ് സ്‌പെയ്‌സ് ഇല്ല ഇപ്പോൾ‍ റീഫ്രഷ് ചെയ്യുക എന്നതുമായി ജോടിയാക്കുന്നു diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_sv.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_sv.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_sv.xtb 2024-05-15 21:45:56.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_sv.xtb 2024-05-21 22:42:49.000000000 +0000 @@ -1387,7 +1387,7 @@ Prova nu. Aktivera eller inaktivera inställningen och scrolla sedan med två fingrar på styrplattan i testområdet. Du hittar även detta under Inställningar > Enhet > Mus och styrplatta. Datorn och Chromecast-enheten är på samma wifi-nätverk Funktioner som kräver bilder slutar fungera -Google Meet-maskinvara är klar att konfigureras +Google Meet-hårdvara är klar att konfigureras Inaktivera insamling av resultatdata Google Play och appar som du har laddat ned från Google Play raderas från denna Chromebook. @@ -1956,7 +1956,7 @@ Stäng av wifi dessa kundvagnar Det gick inte att läsa in Google Assistent. Kontrollera nätverksanslutningen och försök igen. -Organisationen tillåter endast auktoriserade användare att registrera enheter. Den här användaren har inte behörighet att registrera enheter. Se till att användaren har administratörsbehörigheten Registrera Google Meet-maskinvara i avsnittet Användare i administratörskonsolen. +Organisationen tillåter endast auktoriserade användare att registrera enheter. Den här användaren har inte behörighet att registrera enheter. Se till att användaren har administratörsbehörigheten Registrera Google Meet-hårdvara i avsnittet Användare i administratörskonsolen. Avbryt nedladdning Lägg till en frågeparameter i webbadressen om du vill uppdatera sidan automatiskt: chrome://network/?refresh=<sec> Utseende @@ -3268,7 +3268,7 @@ Skärm Logga in på igen för att verifiera kontot Gör det svårare för personer som har åtkomst till din internettrafik att se vilka webbplatser du besöker. använder en säker anslutning för att söka efter en webbplats IP-adress i domännamnssystemet (DNS). -Låt Google använda din maskinvarudata för att förbättra . Om du nekar skickas denna data ändå till Google i syfte att fastställa lämpliga uppdateringar, men den varken lagras eller används på andra sätt. +Låt Google använda din hårdvarudata för att förbättra . Om du nekar skickas denna data ändå till Google i syfte att fastställa lämpliga uppdateringar, men den varken lagras eller används på andra sätt. överskred tidsgränsen Du har redan lösenord för dessa konton på . Om du väljer att importera ett av lösenorden nedan ersätts det befintliga. Tredjepartscookies har blockerats @@ -3445,7 +3445,7 @@ samla in resultat från IP-adresser och nätverksmätningar för Measurement Lab enligt deras integritetspolicy (measurementlab.net/privacy). Något gick fel. Försök igen. Filsynkronisering på -Insamling av maskinvarudata för +Insamling av hårdvarudata för Konfigurera IP-adress automatiskt Sök i nedladdningshistoriken Har angetts på en bedräglig webbplats och upptäckts i ett dataintrång @@ -4041,7 +4041,7 @@ Laddar ned , Säkerhetskopiera data Synkronisera så att inställningarna kan användas på alla enheter där du är inloggad på Google-kontot. Detta gäller bland annat appar, inställningar, wifi-lösenord, språk, bakgrund och kortkommandon. -Tyvärr är din dator konfigurerad med ett felaktigt maskinvaru-id. Detta förhindrar att ChromeOS Flex uppdateras med de senaste säkerhetskorrigeringarna och datorn kan vara sårbar för angrepp. +Tyvärr är din dator konfigurerad med ett felaktigt hårdvaru-id. Detta förhindrar att ChromeOS Flex uppdateras med de senaste säkerhetskorrigeringarna och datorn kan vara sårbar för angrepp. Lås upp mobilen och håll den närmare din . Vissa av dina lösenord upptäcktes i samband med ett dataintrång. För att skydda dina konton bör du ändra dessa lösenord nu. &Zooma in @@ -6504,7 +6504,7 @@ kräver att du uppdaterar din omedelbart. Påträngande eller vilseledande annonser visas på webbplatsen USB-enhet från -Du har inte tillräckligt många licenser tillgängliga för att registrera den här maskinvaruenheten för Google Meet. Kontakta säljavdelningen om du vill köpa fler. Om du anser att detta meddelande visas på felaktig grund kontaktar du supporten. +Du har inte tillräckligt många licenser tillgängliga för att registrera den här hårdvaruenheten för Google Meet. Kontakta säljavdelningen om du vill köpa fler. Om du anser att detta meddelande visas på felaktig grund kontaktar du supporten. Serienummer Tidszon använder kameran och mikrofonen @@ -6994,7 +6994,7 @@ Redigera lösenord &Avsluta Det gick inte att konfigurera automatiskt. Ange avancerade utskriftsalternativ. Läs mer -Låt Google använda data om din maskinvara för att förbättra . Om du nekar skickas denna data ändå till Google i syfte att fastställa lämpliga uppdateringar, men den varken lagras eller används på andra sätt. Läs mer på g.co/flex/HWDataCollection. +Låt Google använda data om din hårdvara för att förbättra . Om du nekar skickas denna data ändå till Google i syfte att fastställa lämpliga uppdateringar, men den varken lagras eller används på andra sätt. Läs mer på g.co/flex/HWDataCollection. Filtrera Personuppgiftsförslag Global policy: @@ -7559,7 +7559,7 @@ Öppna Google Lösenordshantering Välj ett annat språk … Får inte visa osäkert innehåll -För att tillhandahålla bästa möjliga upplevelse samlar in data om enhetens maskinvara och delar den med Google för att avgöra vilka uppdateringar som bör levereras. Du kan välja att ge Google tillåtelse att använda denna data för ytterligare syften, som support och förbättringar kring upplevelsen och tjänsten från . +För att tillhandahålla bästa möjliga upplevelse samlar in data om enhetens hårdvara och delar den med Google för att avgöra vilka uppdateringar som bör levereras. Du kan välja att ge Google tillåtelse att använda denna data för ytterligare syften, som support och förbättringar kring upplevelsen och tjänsten från . Du kan logga in på den här enheten och visa fält som anges som chromeosflex_ i chrome://system för att se data som skickas till Google för uppdateringsfiltrering och alla andra situationer där du väljer att dela data med Google. Om du vill läsa mer om vilken data som kan dela med Google och hur den delas besöker du g.co/flex/HWDataCollection. Webbplatser du besöker som definierar intressen @@ -7932,7 +7932,7 @@ Högerklicka på en flik och välj Lägg till fliken i gruppen, och välj sedan Ny grupp – Serieporten är ansluten Ange högst 62 tecken -En administratör med behörigheten Fakturahantering måste först godkänna användarvillkoren för Google Meet-maskinvara i avsnittet Google Meet-maskinvara i administratörskonsolen. +En administratör med behörigheten Fakturahantering måste först godkänna användarvillkoren för Google Meet-hårdvara i avsnittet Google Meet-hårdvara i administratörskonsolen. utrymme rekommenderas för Linux. Frigör utrymme genom att radera filer på enheten. Text för förhandsgranskning Brytarstyrning @@ -8241,7 +8241,7 @@ Välj mappen Mörkgrön Rekommenderas -Aktivera gästsurfning +Aktivera gästsessioner Vill du ändra standardapp för länkar som stöds? En nyckel har raderats @@ -8798,7 +8798,7 @@ Åtgärd Öppna Play Butik Det gick inte att läsa in bokmärkesmodellen. -Slumpgenerera maskinvaru-id:t (BSSID) för att förhindra att andra spårar den här enheten. +Slumpgenerera hårdvaru-id:t (BSSID) för att förhindra att andra spårar den här enheten. VPN Den här webbplatsen har blockerats från att använda rörelsesensorerna. Mobildata används @@ -10089,7 +10089,7 @@ Sök på webben ... Tillåts hantera fönster på alla skärmar Serverfel -Tyvärr är din dator konfigurerad med ett felaktigt maskinvaru-ID. Detta förhindrar att ChromeOS uppdateras med de senaste säkerhetskorrigeringarna och datorn kan vara utsatt för skadlig kod. +Tyvärr är din dator konfigurerad med ett felaktigt hårdvaru-ID. Detta förhindrar att ChromeOS uppdateras med de senaste säkerhetskorrigeringarna och datorn kan vara utsatt för skadlig kod. Webbplatser använder den här funktionen för att aktivera helskärm automatiskt. Användaren måste vanligtvis aktivera helskärmsläget själv. Installationsprogram hittade ingen giltig destination för installationen av . {COUNT,plural, =1{Video}other{# videor}} @@ -10319,7 +10319,7 @@ Hamburgare Hantera telefoner Lossa gruppen från bokmärkesfältet -Bildsökning +Sök med bild Lösenordet har endast sparats på den här enheten. Uppdatera Google Play-tjänsterna om du vill spara nya lösenord i Google-kontot. Läs och ändra användarna på godkännandelistan Radera fingeravtrycket diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_ta.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_ta.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_ta.xtb 2024-05-15 21:45:56.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_ta.xtb 2024-05-21 22:42:49.000000000 +0000 @@ -9777,7 +9777,7 @@ 'மேம்பட்ட பாதுகாப்பு' அம்சத்தால் தடுக்கப்பட்டது பரிசோதனை AI அம்சங்களைப் பயன்படுத்திப் பாருங்கள் மாற்று -பணிப்பட்டிக்குப் பொருத்து +செயல் பட்டிக்குப் பொருத்து உங்கள் சாதனத்தை அன்லாக் செய்ய, உங்கள் பின்னைப் பயன்படுத்தலாம். குழுவைச் சேமி உரை புலங்களில் குரல் தட்டச்சை அனுமதிக்க, டிக்டேஷன் அம்சம் உங்கள் குரலை Googleளுக்கு அனுப்பும். diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_uk.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_uk.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_uk.xtb 2024-05-15 21:45:56.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_uk.xtb 2024-05-21 22:42:49.000000000 +0000 @@ -518,7 +518,7 @@ або повторіть спробу пізніше Користувач не має дозволу друкувати через принтер "". Зв’яжіться з адміністратором. Словники користувача -Обмежує коло користувачів, які можуть входити в систему +Обмежити коло користувачів, які можуть входити в систему Сонце та хмари Засіб оновлення запущено Виділити елемент, вибраний через клавіатуру @@ -928,7 +928,7 @@ Інструменти для розробників Вийти? Сервіс керування надіслав помилку HTTP. -Налаштування голосу синтезу мовлення +Налаштування голосу для синтезу мовлення Під час встановлення додатка Linux сталася помилка. Нове анонімне вікно Великий курсор миші @@ -1675,7 +1675,7 @@ Це налаштування встановив користувач . Редагувати ім’я папки Віртуальну картку ввімкнено -Неактивні команди +Неактивні ярлики Розблоковувати автоматично, коли хтось вводить PIN-код Видалити пропозицію Залишилося більше 1 год. @@ -1760,7 +1760,7 @@ Немає шрифтів, що відповідають запиту. Почніть роботу з як звичайний користувач. Щоб запустити програму для розробки з кореневого каталогу, перезапустіть її, поставивши прапорець біля опції "--не в ізольованому програмному середовищі". Перевірте інтернет-з’єднання й повторіть спробу. Ви також можете вибрати одну з раніше створених тем нижче. -Екран конфіденційності +Конфіденційність даних на екрані Установити ? Перегляньте свої налаштування Результатів: @@ -8391,7 +8391,7 @@ Це налаштування не передбачає вашу ідентифікацію і дозвіл для сайтів на доступ до історії веб-перегляду, хоча сайти можуть надсилати невелику кількість інформації для цілей підтвердження Спливаюче вікно заблоковано Режим інверсії кольорів -Імпортувати та зв’язати +Імпортувати й зв’язати Більшість людей блокують усі сповіщення від цього сайту Цю назву бачитимуть інші користувачі Додайте сервер для друку @@ -9241,7 +9241,7 @@ Введіть свій обліковий запис Google і пароль Керувати мовами в налаштуваннях ОС Chrome Flex Оновити розширення зараз -Блокування екрана та вхід +Блокування екрана й вхід Про оновлення Очистити історію Доступ на всіх ваших пристроях @@ -9824,7 +9824,7 @@ Статус входу Перегляньте основні елементи керування конфіденційністю та безпекою Щоб заощадити обсяг пам’яті, веб-переглядач Chrome вилучив деякий контент -Керувати пошуковими системами та пошуком на сайтах +Керувати пошуковими системами й пошуком на сайтах Надсилається запит на отримання інтерфейсу конфігурації мережі. Зачекайте… Проксі-сервер Паролі не знайдено diff -Nru chromium-125.0.6422.60/chrome/app/resources/generated_resources_vi.xtb chromium-125.0.6422.76/chrome/app/resources/generated_resources_vi.xtb --- chromium-125.0.6422.60/chrome/app/resources/generated_resources_vi.xtb 2024-05-15 21:45:56.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/generated_resources_vi.xtb 2024-05-21 22:42:49.000000000 +0000 @@ -1061,7 +1061,7 @@ Báo cáo nội dung phản cảm/không an toàn. Thiết lập tính năng Chia sẻ lân cận để nhận và gửi tệp với những người xung quanh bạn Mã PIN hiện tại -Mở trang thẻ mới +Mở trang Thẻ mới Ngôn ngữ nói Tài khoản và đồng bộ hóa Chia sẻ âm thanh trên cửa sổ @@ -4248,7 +4248,7 @@ Tím Bàn phím không xác định không thuộc về một tổ chức hợp lệ. Hãy liên hệ với quản trị viên của bạn. Nếu bạn là quản trị viên thì bạn có thể thiết lập tổ chức của mình bằng cách truy cập: g.co/ChromeEnterpriseAccount -Chế độ cài đặt trang web +Cài đặt trang web đang cố truy cập vào . Hãy tắt nút chuyển quyền riêng tư của để cho phép truy cập. Google không chịu trách nhiệm đối với mọi dữ liệu bị mất và có thể sẽ không hoạt động trên một số kiểu thiết bị chưa được chứng nhận. Tìm hiểu thêm tại g.co/flex/InstallGuide. Thao tác khác cho lối tắt @@ -6064,7 +6064,7 @@ Nếu bạn bật tùy chọn cài đặt Hoạt động trên web và ứng dụng bổ sung, thì dữ liệu này có thể được lưu vào Tài khoản Google của bạn. Bạn có thể xem và xóa dữ liệu của mình cũng như thay đổi tùy chọn cài đặt tài khoản tại account.google.com. Thẻ Không thể tạo thư mục dấu trang. -Mở một trang cụ thể hoặc tập hợp các trang +Mở một trang hoặc một tập hợp các trang cụ thể Thiết bị của bạn sắp hết dung lượng lưu trữ. Thiết bị phải có ít nhất dung lượng trống thì mới dùng được . Để tăng dung lượng trống, hãy xóa bớt tệp khỏi thiết bị. Định dạng không thành công Để chia sẻ, hãy nhấp chuột phải vào một thư mục trong ứng dụng Files rồi chọn "Chia sẻ với ". diff -Nru chromium-125.0.6422.60/chrome/app/resources/google_chrome_strings_sv.xtb chromium-125.0.6422.76/chrome/app/resources/google_chrome_strings_sv.xtb --- chromium-125.0.6422.60/chrome/app/resources/google_chrome_strings_sv.xtb 2024-05-15 21:45:57.000000000 +0000 +++ chromium-125.0.6422.76/chrome/app/resources/google_chrome_strings_sv.xtb 2024-05-21 22:42:49.000000000 +0000 @@ -445,7 +445,7 @@ Tack för att du installerat programmet. Du måste starta om alla webbläsare innan du använder . ChromeOS Flex Andra Chrome-profiler -Installationen misslyckades eftersom datorn inte uppfyller minimikraven för maskinvara. +Installationen misslyckades eftersom datorn inte uppfyller minimikraven för hårdvara. Om &Google Chrome Initierar … Google Chrome använder din kamera och mikrofon. diff -Nru chromium-125.0.6422.60/chrome/browser/extensions/installed_loader.cc chromium-125.0.6422.76/chrome/browser/extensions/installed_loader.cc --- chromium-125.0.6422.60/chrome/browser/extensions/installed_loader.cc 2024-05-15 21:46:01.000000000 +0000 +++ chromium-125.0.6422.76/chrome/browser/extensions/installed_loader.cc 2024-05-21 22:42:51.000000000 +0000 @@ -564,7 +564,7 @@ // status. if (dev_mode_enabled) { base::UmaHistogramEnumeration( - "Extensions.NonWebstoreLocationWithDeveloperModeOn.Enabled", + "Extensions.NonWebstoreLocationWithDeveloperModeOn.Enabled2", location); } else { base::UmaHistogramEnumeration( @@ -910,7 +910,7 @@ !disabled_extension->from_webstore()) { if (dev_mode_enabled) { base::UmaHistogramEnumeration( - "Extensions.NonWebstoreLocationWithDeveloperModeOn.Disabled", + "Extensions.NonWebstoreLocationWithDeveloperModeOn.Disabled2", location); } else { base::UmaHistogramEnumeration( diff -Nru chromium-125.0.6422.60/chrome/browser/search_engine_choice/search_engine_choice_dialog_interactive_uitest.cc chromium-125.0.6422.76/chrome/browser/search_engine_choice/search_engine_choice_dialog_interactive_uitest.cc --- chromium-125.0.6422.60/chrome/browser/search_engine_choice/search_engine_choice_dialog_interactive_uitest.cc 2024-05-15 21:46:03.000000000 +0000 +++ chromium-125.0.6422.76/chrome/browser/search_engine_choice/search_engine_choice_dialog_interactive_uitest.cc 2024-05-21 22:42:52.000000000 +0000 @@ -16,6 +16,8 @@ #include "chrome/test/base/ui_test_utils.h" #include "chrome/test/interaction/interactive_browser_test.h" #include "components/country_codes/country_codes.h" +#include "components/search_engines/choice_made_location.h" +#include "components/search_engines/default_search_manager.h" #include "components/search_engines/search_engine_choice/search_engine_choice_utils.h" #include "components/search_engines/search_engines_switches.h" #include "components/search_engines/template_url_service.h" @@ -178,6 +180,13 @@ EXPECT_FALSE(search_engine_choice_service->IsShowingDialog(browser())); + PrefService* pref_service = browser()->profile()->GetPrefs(); + const base::Value::Dict& template_url_dict = pref_service->GetDict( + DefaultSearchManager::kDefaultSearchProviderDataPrefName); + EXPECT_EQ( + template_url_dict.FindInt(DefaultSearchManager::kChoiceLocation), + static_cast(search_engines::ChoiceMadeLocation::kChoiceScreen)); + // We expect that the value was recorded at least once because more than one // navigation could happen in the background. EXPECT_GE(HistogramTester().GetBucketCount( diff -Nru chromium-125.0.6422.60/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb chromium-125.0.6422.76/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb --- chromium-125.0.6422.60/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb 2024-05-15 21:46:04.000000000 +0000 +++ chromium-125.0.6422.76/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb 2024-05-21 22:42:53.000000000 +0000 @@ -1082,7 +1082,7 @@ ‏שימוש ב-DNS מאובטח חיסכון של עד 60% בשימוש בחבילת הגלישה יש לוודא שהסיסמה שנשמרת זהה לסיסמה שלך עבור -לגרסה במחשב +אתר שמותאם למחשב אפשרויות למיון ולהצגה ‏התמונות נשלחות אל Google כדי לשפר את התיאורים לנוחיותך. רמת אבטחה משופרת עבורך ועבור כל מי שמתחבר לאינטרנט. diff -Nru chromium-125.0.6422.60/chrome/browser/ui/chromeos/read_write_cards/read_write_cards_ui_controller.cc chromium-125.0.6422.76/chrome/browser/ui/chromeos/read_write_cards/read_write_cards_ui_controller.cc --- chromium-125.0.6422.60/chrome/browser/ui/chromeos/read_write_cards/read_write_cards_ui_controller.cc 2024-05-15 21:46:05.000000000 +0000 +++ chromium-125.0.6422.76/chrome/browser/ui/chromeos/read_write_cards/read_write_cards_ui_controller.cc 2024-05-21 22:42:53.000000000 +0000 @@ -148,8 +148,6 @@ // view's `GetMaximumSize()` to calculate this reserved height. int extra_reserved_height = 0; if (quick_answers_view_ && !quick_answers_view_->GetMaximumSize().IsZero()) { - CHECK_GE(quick_answers_view_->GetMaximumSize().height(), - quick_answers_view_->size().height()); extra_reserved_height = quick_answers_view_->GetMaximumSize().height() - quick_answers_view_->size().height(); } diff -Nru chromium-125.0.6422.60/chrome/browser/ui/quick_answers/ui/quick_answers_view.cc chromium-125.0.6422.76/chrome/browser/ui/quick_answers/ui/quick_answers_view.cc --- chromium-125.0.6422.60/chrome/browser/ui/quick_answers/ui/quick_answers_view.cc 2024-05-15 21:46:05.000000000 +0000 +++ chromium-125.0.6422.76/chrome/browser/ui/quick_answers/ui/quick_answers_view.cc 2024-05-21 22:42:53.000000000 +0000 @@ -123,12 +123,6 @@ return kContentViewInsets; } -// Maximum height QuickAnswersView can expand to. -int MaximumViewHeight() { - return kMainViewInsets.height() + GetContentViewInsets().height() + - kMaxRows * kDefaultLineHeightDip + (kMaxRows - 1) * kLineSpacingDip; -} - class MainView : public views::Button { METADATA_HEADER(MainView, views::Button) @@ -190,6 +184,8 @@ METADATA_HEADER(ReportQueryView, views::Button) public: + static constexpr size_t kMaximumHeight = kDogfoodIconSizeDip; + explicit ReportQueryView(PressedCallback callback) : Button(std::move(callback)) { SetBackground(views::CreateThemedSolidBackground( @@ -255,6 +251,13 @@ BEGIN_METADATA(ReportQueryView) END_METADATA +// Maximum height QuickAnswersView can expand to. +int MaximumViewHeight(bool is_internal) { + return kMainViewInsets.height() + GetContentViewInsets().height() + + kMaxRows * kDefaultLineHeightDip + (kMaxRows - 1) * kLineSpacingDip + + (is_internal ? ReportQueryView::kMaximumHeight : 0); +} + } // namespace namespace quick_answers { @@ -356,7 +359,7 @@ // in `ReadWriteCardsUiController`. We need to reserve space at // the top since the view might expand for two-line answers. // Note that the width will not be used in the calculation. - return gfx::Size(0, MaximumViewHeight()); + return gfx::Size(0, MaximumViewHeight(is_internal_)); } void QuickAnswersView::UpdateBoundsForQuickAnswers() { diff -Nru chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_drag_controller.cc chromium-125.0.6422.76/chrome/browser/ui/views/tabs/tab_drag_controller.cc --- chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_drag_controller.cc 2024-05-15 21:46:06.000000000 +0000 +++ chromium-125.0.6422.76/chrome/browser/ui/views/tabs/tab_drag_controller.cc 2024-05-21 22:42:54.000000000 +0000 @@ -13,6 +13,7 @@ #include "base/auto_reset.h" #include "base/containers/adapters.h" #include "base/containers/contains.h" +#include "base/feature_list.h" #include "base/functional/bind.h" #include "base/functional/callback.h" #include "base/i18n/rtl.h" @@ -56,6 +57,7 @@ #include "chrome/browser/ui/web_applications/web_app_tabbed_utils.h" #include "chrome/browser/web_applications/web_app_helpers.h" #include "chrome/browser/web_applications/web_app_provider.h" +#include "chrome/common/chrome_features.h" #include "chrome/grit/chrome_unscaled_resources.h" #include "components/tab_groups/tab_group_id.h" #include "content/public/browser/web_contents.h" @@ -607,6 +609,17 @@ return !IsDraggingTab(contents) || is_mutating_; } +bool TabDragController::CanRestoreFullscreenWindowDuringDrag() const { +#if BUILDFLAG(IS_MAC) + // On macOS in immersive fullscreen mode restoring the window moves the tab + // strip between widgets breaking a number of assumptions during the drag. + // Disable window restoration during a drag while in immersive fullscreen. + return !base::FeatureList::IsEnabled(features::kImmersiveFullscreen); +#else + return true; +#endif +} + void TabDragController::Drag(const gfx::Point& point_in_screen) { TRACE_EVENT1("views", "TabDragController::Drag", "point_in_screen", point_in_screen.ToString()); @@ -673,7 +686,8 @@ views::Widget* widget = GetAttachedBrowserWidget(); gfx::Rect new_bounds; gfx::Vector2d drag_offset; - if (was_source_maximized_ || was_source_fullscreen_) { + if (was_source_maximized_ || + (was_source_fullscreen_ && CanRestoreFullscreenWindowDuringDrag())) { did_restore_window_ = true; // When all tabs in a maximized browser are dragged the browser gets // restored during the drag and maximized back when the drag ends. diff -Nru chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_drag_controller.h chromium-125.0.6422.76/chrome/browser/ui/views/tabs/tab_drag_controller.h --- chromium-125.0.6422.60/chrome/browser/ui/views/tabs/tab_drag_controller.h 2024-05-15 21:46:06.000000000 +0000 +++ chromium-125.0.6422.76/chrome/browser/ui/views/tabs/tab_drag_controller.h 2024-05-21 22:42:54.000000000 +0000 @@ -206,6 +206,9 @@ // false if that would be problematic for the drag session. bool CanRemoveTabDuringDrag(content::WebContents* contents) const; + // Returns true if restoring a fullscreen window during a drag is allowed. + bool CanRestoreFullscreenWindowDuringDrag() const; + // Invoked to drag to the new location, in screen coordinates. void Drag(const gfx::Point& point_in_screen); diff -Nru chromium-125.0.6422.60/chrome/browser/user_education/browser_feature_promo_storage_service.cc chromium-125.0.6422.76/chrome/browser/user_education/browser_feature_promo_storage_service.cc --- chromium-125.0.6422.60/chrome/browser/user_education/browser_feature_promo_storage_service.cc 2024-05-15 21:46:06.000000000 +0000 +++ chromium-125.0.6422.76/chrome/browser/user_education/browser_feature_promo_storage_service.cc 2024-05-21 22:42:54.000000000 +0000 @@ -350,6 +350,8 @@ ScopedListPrefUpdate update(profile_->GetPrefs(), kRecentSessionStartTimesPath); auto& pref_data = update.Get(); + // `recent_session_data` contains the pref data, so rewrite the pref. + pref_data.clear(); for (const auto& time : recent_session_data.recent_session_start_times) { pref_data.Append(base::TimeToValue(time)); } diff -Nru chromium-125.0.6422.60/chromeos/CHROMEOS_LKGM chromium-125.0.6422.76/chromeos/CHROMEOS_LKGM --- chromium-125.0.6422.60/chromeos/CHROMEOS_LKGM 2024-05-15 21:46:10.000000000 +0000 +++ chromium-125.0.6422.76/chromeos/CHROMEOS_LKGM 2024-05-21 22:42:56.000000000 +0000 @@ -1 +1 @@ -15853.34.0 \ No newline at end of file +15853.43.0 \ No newline at end of file diff -Nru chromium-125.0.6422.60/chromeos/ash/components/growth/campaigns_matcher.cc chromium-125.0.6422.76/chromeos/ash/components/growth/campaigns_matcher.cc --- chromium-125.0.6422.60/chromeos/ash/components/growth/campaigns_matcher.cc 2024-05-15 21:46:10.000000000 +0000 +++ chromium-125.0.6422.76/chromeos/ash/components/growth/campaigns_matcher.cc 2024-05-21 22:42:56.000000000 +0000 @@ -470,6 +470,11 @@ ->GetAccountId() .GetGaiaId(); auto* identity_manager = client_->GetIdentityManager(); + if (!identity_manager) { + // Identity manager is not available (e.g:guest mode). In that case, + // a campaign with minor user targeting shouldn't be triggered. + return false; + } const AccountInfo account_info = identity_manager->FindExtendedAccountInfoByGaiaId(gaia_id); // TODO: b/333896450 - find a better signal for minor mode. diff -Nru chromium-125.0.6422.60/chromeos/strings/chromeos_strings_ky.xtb chromium-125.0.6422.76/chromeos/strings/chromeos_strings_ky.xtb --- chromium-125.0.6422.60/chromeos/strings/chromeos_strings_ky.xtb 2024-05-15 21:46:10.000000000 +0000 +++ chromium-125.0.6422.76/chromeos/strings/chromeos_strings_ky.xtb 2024-05-21 22:42:56.000000000 +0000 @@ -126,7 +126,7 @@ Тушкагаздын сүрөтүн күн сайын өзгөртүү Таржымал Жалпы альбомду тандадыңыз. Башка адамдар сүрөттөрдү кошуп же өзгөртө алышат. Учурда бул альбомдо жок сүрөттөр тушкагаз катары көрсөтүлүшү мүмкүн. -Аккаунт жана тутум жөнүндө айрым маалымат Google'га жөнөтүлүшү мүмкүн. Бул маалыматты Купуялык саясаты () жана Тейлөө шарттарына () ылайык техникалык маселелерди чечүү жана кызматтарыбызды жакшыртуу үчүн колдонобуз. Контентке өзгөртүүлөрдү киргизүүнү сурануу үчүн Юридикалык жардам () барагына өтүңүз. +Аккаунт жана система жөнүндө айрым маалымат Google'га жөнөтүлүшү мүмкүн. Бул маалыматты Купуялык саясаты () жана Тейлөө шарттарына () ылайык техникалык маселелерди чечүү жана кызматтарыбызды жакшыртуу үчүн колдонобуз. Контентке өзгөртүүлөрдү киргизүүнү сурануу үчүн Юридикалык жардам () барагына өтүңүз. Токтоду – Сыя түгөнүп калды алдын ала көрүү Камтылган VPN @@ -1059,7 +1059,7 @@ ЖИ аркылуу контент түзсөңүз, сурам Google ЖИ серверлерине жөнөтүлүп, Google'дун Купуялык эрежелерине ылайык сүрөттөрдү түзүү жана кызматты жакшыртуу үчүн колдонулат. - Генеративдүү жасалма интеллект сынамык функция жана иштеп чыгуунун алгачкы баскычында болгондуктан, учурда жеткиликтүүлүгү чектелген. + Жаратуучу жасалма интеллект сынамык функция жана иштеп чыгуунун алгачкы баскычында болгондуктан, учурда жеткиликтүүлүгү чектелген. кум дөбөлөр Түзмөк офлайн режиминде бул түзмөктү башкарып, андагы колдонуучунун бардык аракеттерине, анын ичинде баш баккан веб-барактарга, сырсөздөргө жана электрондук каттарга кирүү мүмкүнчүлүгү бар. @@ -1190,7 +1190,7 @@ VPN WPA3 баскычтоптун жарыгы -Аккаунт жана тутум жөнүндө айрым маалымат Google'га жөнөтүлүшү мүмкүн. Бул маалыматты Купуялык саясаты жана Тейлөө шарттарына ылайык техникалык маселелерди чечүү жана кызматтарыбызды жакшыртуу үчүн колдонобуз. Контентке өзгөртүүлөрдү киргизүүнү сурануу үчүн Юридикалык жардам барагына өтүңүз. +Аккаунт жана система жөнүндө айрым маалымат Google'га жөнөтүлүшү мүмкүн. Бул маалыматты Купуялык саясаты жана Тейлөө шарттарына ылайык техникалык маселелерди чечүү жана кызматтарыбызды жакшыртуу үчүн колдонобуз. Контентке өзгөртүүлөрдү киргизүүнү сурануу үчүн Юридикалык жардам барагына өтүңүз. Циклдердин саны түзөтүүгө болот Алдын ала бөлүшүлгөн ачкыч diff -Nru chromium-125.0.6422.60/chromeos/strings/chromeos_strings_sv.xtb chromium-125.0.6422.76/chromeos/strings/chromeos_strings_sv.xtb --- chromium-125.0.6422.60/chromeos/strings/chromeos_strings_sv.xtb 2024-05-15 21:46:11.000000000 +0000 +++ chromium-125.0.6422.76/chromeos/strings/chromeos_strings_sv.xtb 2024-05-21 22:42:57.000000000 +0000 @@ -185,7 +185,7 @@ fjärilar Inaktivera mörkt läge spola framåt i media -Revision av maskinvara +Revision av hårdvara neongrön Här är några andra användbara resurser: Du har försökt för många gånger. @@ -1311,7 +1311,7 @@ Hur fort enheten laddas eller laddas ur för närvarande En målning av i stilen Identifierades automatiskt -Kör tester och felsök vid problem med maskinvara +Kör tester och felsök vid problem med hårdvara IMEI ned Nyheter i ChromeOS diff -Nru chromium-125.0.6422.60/chromeos/strings/chromeos_strings_uk.xtb chromium-125.0.6422.76/chromeos/strings/chromeos_strings_uk.xtb --- chromium-125.0.6422.60/chromeos/strings/chromeos_strings_uk.xtb 2024-05-15 21:46:11.000000000 +0000 +++ chromium-125.0.6422.76/chromeos/strings/chromeos_strings_uk.xtb 2024-05-21 22:42:57.000000000 +0000 @@ -931,7 +931,7 @@ Цей фоновий малюнок створено за допомогою ШІ на основі такого тексту: "". Автоматична темна тема Персоналізація -Ім’я користувача та пароль +Ім’я користувача й пароль інша планета Вимкнути світлу тему Корпоративна реєстрація diff -Nru chromium-125.0.6422.60/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb chromium-125.0.6422.76/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb --- chromium-125.0.6422.60/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb 2024-05-15 21:46:11.000000000 +0000 +++ chromium-125.0.6422.76/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb 2024-05-21 22:42:57.000000000 +0000 @@ -169,7 +169,7 @@ i . Números de telèfon Inici de sessió de tercers -L'ús que fas del dispositiu +Ús del teu dispositiu Chrome tornarà a bloquejar les galetes avui Enrere Avança diff -Nru chromium-125.0.6422.60/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb chromium-125.0.6422.76/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb --- chromium-125.0.6422.60/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb 2024-05-15 21:46:11.000000000 +0000 +++ chromium-125.0.6422.76/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb 2024-05-21 22:42:57.000000000 +0000 @@ -343,7 +343,7 @@ {PERMISSIONS_SUMMARY_BLOCKED,plural, =1{נחסמו ההרשאות ,‏ ועוד אחת ()}one{נחסמו ההרשאות ,‏ ועוד }two{נחסמו ההרשאות ,‏ ועוד }other{נחסמו ההרשאות ,‏ ועוד }} הביקור האחרון התבצע לפני ימים הצגת התראות שקטה יותר (למניעת הקפצה של חלוניות מפריעות) -לגרסה במחשב +אתר שמותאם למחשב GB תוכן מוגן להמשיך במצב אנונימי diff -Nru chromium-125.0.6422.60/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb chromium-125.0.6422.76/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb --- chromium-125.0.6422.60/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb 2024-05-15 21:46:11.000000000 +0000 +++ chromium-125.0.6422.76/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb 2024-05-21 22:42:57.000000000 +0000 @@ -188,7 +188,7 @@ Bạn có chắc chắn muốn xoá toàn bộ dữ liệu cục bộ, kể cả cookie, và đặt lại mọi quyền cho trang web này không? Chế độ xem đơn giản cho trang web Thu phóng mặc định -Chế độ cài đặt trang web +Cài đặt trang web Đã kết nối với một thiết bị USB Hỏi trước khi cho phép các trang web xem và thay đổi thông tin trên thiết bị NFC (nên chọn) Mở phần Cài đặt vị trí diff -Nru chromium-125.0.6422.60/components/exo/buffer.cc chromium-125.0.6422.76/components/exo/buffer.cc --- chromium-125.0.6422.60/components/exo/buffer.cc 2024-05-15 21:46:12.000000000 +0000 +++ chromium-125.0.6422.76/components/exo/buffer.cc 2024-05-21 22:42:57.000000000 +0000 @@ -60,10 +60,6 @@ "AlwaysUseMappableSIForExoBuffer", base::FEATURE_ENABLED_BY_DEFAULT); -const bool kIsMappableSIEnabled = - base::FeatureList::IsEnabled(kAlwaysUseMappableSIForExoBuffer) && - media::IsMultiPlaneFormatForHardwareVideoEnabled(); - // The amount of time before we wait for release queries using // GetQueryObjectuivEXT(GL_QUERY_RESULT_EXT). const int kWaitForReleaseDelayMs = 500; @@ -73,6 +69,9 @@ const bool kDefaultUseZeroCopy = true; const bool kDefaultIsOverlayCandidate = false; const bool kDefaultYInvert = false; + +// Default usage in order to create a mappable shared image and get a +// GpuMemoryBufferHandle from it. const uint32_t kDefaultMappableSIUsage = gpu::SHARED_IMAGE_USAGE_DISPLAY_READ; // Gets the color type of |format| for creating bitmap. If it returns @@ -193,7 +192,8 @@ Texture(scoped_refptr context_provider, gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, gfx::GpuMemoryBuffer* gpu_memory_buffer, - gpu::ClientSharedImage* mappable_shared_image, + gfx::GpuMemoryBufferHandle* gpu_memory_buffer_handle, + const gfx::BufferFormat buffer_format, const gfx::Size& size, gfx::ColorSpace color_space, unsigned query_type, @@ -252,8 +252,17 @@ const void* GetBufferId() const; const raw_ptr gpu_memory_buffer_; - const raw_ptr - mappable_shared_image_; + + // Note that |gpu_memory_buffer_handle_| is used instead of + // |gpu_memory_buffer_| when MappableSI is enabled. + // Note that the owning reference to this pointers is ::Buffer which can be + // destroyed before it when ::Buffer::Texture is destroyed via + // ::Buffer::Texture::ReleaseSharedImage(). This causes pointer to dangle. But + // this pointer is safe to dangle as we never access it during + // ::Buffer::Texture destructor and is also never accessed after the owning + // object ::Buffer is destroyed. + const raw_ptr + gpu_memory_buffer_handle_; const gfx::Size size_; scoped_refptr context_provider_; const unsigned query_type_; @@ -263,6 +272,7 @@ const base::TimeDelta wait_for_release_delay_; base::TimeTicks wait_for_release_time_; bool wait_for_release_pending_ = false; + const bool is_mappable_si_enabled_; base::WeakPtrFactory weak_ptr_factory_{this}; }; @@ -272,10 +282,13 @@ gfx::ColorSpace color_space, gpu::SyncToken& sync_token_out) : gpu_memory_buffer_(nullptr), - mappable_shared_image_(nullptr), + gpu_memory_buffer_handle_(nullptr), size_(size), context_provider_(std::move(context_provider)), - query_type_(GL_COMMANDS_COMPLETED_CHROMIUM) { + query_type_(GL_COMMANDS_COMPLETED_CHROMIUM), + is_mappable_si_enabled_( + base::FeatureList::IsEnabled(kAlwaysUseMappableSIForExoBuffer) && + media::IsMultiPlaneFormatForHardwareVideoEnabled()) { gpu::SharedImageInterface* sii = context_provider_->SharedImageInterface(); // These SharedImages are used over the raster interface as both the source @@ -304,7 +317,8 @@ scoped_refptr context_provider, gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, gfx::GpuMemoryBuffer* gpu_memory_buffer, - gpu::ClientSharedImage* mappable_shared_image, + gfx::GpuMemoryBufferHandle* gpu_memory_buffer_handle, + const gfx::BufferFormat buffer_format, const gfx::Size& size, gfx::ColorSpace color_space, unsigned query_type, @@ -312,15 +326,18 @@ bool is_overlay_candidate, gpu::SyncToken& sync_token_out) : gpu_memory_buffer_(gpu_memory_buffer), - mappable_shared_image_(mappable_shared_image), + gpu_memory_buffer_handle_(gpu_memory_buffer_handle), size_(size), context_provider_(std::move(context_provider)), query_type_(query_type), - wait_for_release_delay_(wait_for_release_delay) { + wait_for_release_delay_(wait_for_release_delay), + is_mappable_si_enabled_( + base::FeatureList::IsEnabled(kAlwaysUseMappableSIForExoBuffer) && + media::IsMultiPlaneFormatForHardwareVideoEnabled()) { // Adding checks to avoid running into issues until the feature is fully // enabled. - CHECK((kIsMappableSIEnabled && mappable_shared_image_) || - (!kIsMappableSIEnabled && gpu_memory_buffer)); + CHECK((is_mappable_si_enabled_ && !gpu_memory_buffer_handle_->is_null()) || + (!is_mappable_si_enabled_ && gpu_memory_buffer)); gpu::SharedImageInterface* sii = context_provider_->SharedImageInterface(); @@ -335,15 +352,15 @@ usage |= gpu::SHARED_IMAGE_USAGE_SCANOUT; } - if (kIsMappableSIEnabled) { + if (is_mappable_si_enabled_) { shared_image_ = sii->CreateSharedImage( - {mappable_shared_image_->format(), size_, color_space, usage, + {GetSharedImageFormat(buffer_format), size_, color_space, usage, gpu::kExoTextureLabelPrefix}, - mappable_shared_image_->CloneGpuMemoryBufferHandle()); + gpu_memory_buffer_handle_->Clone()); } else if (media::IsMultiPlaneFormatForHardwareVideoEnabled()) { - auto si_format = GetSharedImageFormat(gpu_memory_buffer_->GetFormat()); shared_image_ = sii->CreateSharedImage( - {si_format, size_, color_space, usage, gpu::kExoTextureLabelPrefix}, + {GetSharedImageFormat(buffer_format), size_, color_space, usage, + gpu::kExoTextureLabelPrefix}, gpu_memory_buffer_->CloneHandle()); } else { shared_image_ = sii->CreateSharedImage( @@ -555,8 +572,9 @@ } const void* Buffer::Texture::GetBufferId() const { - return kIsMappableSIEnabled ? static_cast(mappable_shared_image_) - : static_cast(gpu_memory_buffer_); + return is_mappable_si_enabled_ + ? static_cast(gpu_memory_buffer_handle_) + : static_cast(gpu_memory_buffer_); } Buffer::BufferRelease::BufferRelease( @@ -592,7 +610,7 @@ bool is_overlay_candidate, bool y_invert) : gpu_memory_buffer_(std::move(gpu_memory_buffer)), - mappable_shared_image_(nullptr), + gpu_memory_buffer_handle_(gfx::GpuMemoryBufferHandle()), buffer_format_(gpu_memory_buffer_ ? gpu_memory_buffer_->GetFormat() : gfx::BufferFormat::RGBA_8888), size_(gpu_memory_buffer_ ? gpu_memory_buffer_->GetSize() @@ -601,34 +619,34 @@ use_zero_copy_(use_zero_copy), is_overlay_candidate_(is_overlay_candidate), y_invert_(y_invert), - wait_for_release_delay_(base::Milliseconds(kWaitForReleaseDelayMs)) {} + wait_for_release_delay_(base::Milliseconds(kWaitForReleaseDelayMs)), + is_mappable_si_enabled_( + base::FeatureList::IsEnabled(kAlwaysUseMappableSIForExoBuffer) && + media::IsMultiPlaneFormatForHardwareVideoEnabled()) {} -Buffer::Buffer(scoped_refptr mappable_shared_image, +Buffer::Buffer(gfx::GpuMemoryBufferHandle gpu_memory_buffer_handle, gfx::BufferFormat buffer_format, + gfx::Size size, + gfx::BufferUsage buffer_usage, unsigned query_type, bool use_zero_copy, bool is_overlay_candidate, bool y_invert) : gpu_memory_buffer_(nullptr), - mappable_shared_image_(std::move(mappable_shared_image)), + gpu_memory_buffer_handle_(std::move(gpu_memory_buffer_handle)), buffer_format_(buffer_format), - size_(mappable_shared_image_->size()), + size_(size), + buffer_usage_(buffer_usage), query_type_(query_type), use_zero_copy_(use_zero_copy), is_overlay_candidate_(is_overlay_candidate), y_invert_(y_invert), - wait_for_release_delay_(base::Milliseconds(kWaitForReleaseDelayMs)) {} + wait_for_release_delay_(base::Milliseconds(kWaitForReleaseDelayMs)), + is_mappable_si_enabled_( + base::FeatureList::IsEnabled(kAlwaysUseMappableSIForExoBuffer) && + media::IsMultiPlaneFormatForHardwareVideoEnabled()) {} -Buffer::~Buffer() { - // Note that currently ClientSharedImage does not automatically deletes the - // shared image mailbox when ref count goes to 0. So client need to explicitly - // delete it. - auto* sii = GetSharedImageInterface(); - if (sii && mappable_shared_image_) { - sii->DestroySharedImage(gpu::SyncToken(), - std::move(mappable_shared_image_)); - } -} +Buffer::~Buffer() {} // static std::unique_ptr Buffer::CreateBufferFromGMBHandle( @@ -640,22 +658,13 @@ bool use_zero_copy, bool is_overlay_candidate, bool y_invert) { - if (kIsMappableSIEnabled) { - scoped_refptr shared_image; - auto* sii = GetSharedImageInterface(); - if (sii) { - shared_image = sii->CreateSharedImage( - {GetSharedImageFormat(buffer_format), buffer_size, gfx::ColorSpace(), - kDefaultMappableSIUsage, "ExoBufferCreateBufferFromGMBHandle"}, - gpu::kNullSurfaceHandle, buffer_usage, std::move(buffer_handle)); - } - if (!shared_image) { - LOG(ERROR) << "Failed to create a shared image."; - return nullptr; - } - return base::WrapUnique(new Buffer(std::move(shared_image), buffer_format, - query_type, use_zero_copy, - is_overlay_candidate, y_invert)); + const bool is_mappable_si_enabled = + base::FeatureList::IsEnabled(kAlwaysUseMappableSIForExoBuffer) && + media::IsMultiPlaneFormatForHardwareVideoEnabled(); + if (is_mappable_si_enabled) { + return base::WrapUnique(new Buffer( + std::move(buffer_handle), buffer_format, buffer_size, buffer_usage, + query_type, use_zero_copy, is_overlay_candidate, y_invert)); } gpu::GpuMemoryBufferSupport gpu_memory_buffer_support; @@ -685,22 +694,50 @@ gpu::SurfaceHandle surface_handle, base::WaitableEvent* shutdown_event, bool is_overlay_candidate) { - if (kIsMappableSIEnabled) { + const bool is_mappable_si_enabled = + base::FeatureList::IsEnabled(kAlwaysUseMappableSIForExoBuffer) && + media::IsMultiPlaneFormatForHardwareVideoEnabled(); + if (is_mappable_si_enabled) { scoped_refptr shared_image; auto* sii = GetSharedImageInterface(); if (sii) { + // Note that we are creating this mappable shared image only to get a + // GMBHandle from it and use below to create ::Buffer. + // TODO(vikassoni) : Once MultiPlanarSI and MappableSI is fully launced + // and we remove legacy code paths, refactor ::Buffer and + // ::Buffer::Texture to use this MappableSI created below directly in + // ::Buffer::Texture instead of creating new SI in it. + // ::Buffer will keep a GMB handle as well as MappableSI when handles + // comes externally via ::CreateBufferFromGMBHandle whereas only + // MappableSI for ::CreateBuffer calls. ::Buffer also needs to handle + // context loss since its using a SI. + // Currently creating ::Buffer from MappableSI below and then using that + // ::Buffer to create + // ::Buffer::Texture does not work well as the ::Buffer does not implement + // ContextLostObserver like ::Buffer::Texture. Even if ::Buffer does + // implement ContextLostObserver and destroys the MappableSI correctly, it + // still needs to recreate it when contexts are recreated. This behaviour + // will be different from using |gpu_memory_buffer_| currently as it does + // not need to be destroyed and recreated on context loss. shared_image = sii->CreateSharedImage( {GetSharedImageFormat(buffer_format), buffer_size, gfx::ColorSpace(), kDefaultMappableSIUsage, "ExoBufferCreateBuffer"}, surface_handle, buffer_usage); } if (!shared_image) { - LOG(ERROR) << "Failed to create a shared image."; + LOG(ERROR) << "Failed to create a mappable shared image."; return nullptr; } - return base::WrapUnique(new Buffer(std::move(shared_image), buffer_format, - kDefaultQueryType, kDefaultUseZeroCopy, - is_overlay_candidate, kDefaultYInvert)); + std::unique_ptr buffer = base::WrapUnique( + new Buffer(shared_image->CloneGpuMemoryBufferHandle(), buffer_format, + buffer_size, buffer_usage, kDefaultQueryType, + kDefaultUseZeroCopy, is_overlay_candidate, kDefaultYInvert)); + + // Destroy the |shared_image| as it will no longer be used. Note that the + // underlying handle is already cloned above and will not be destroyed by + // destroying the |shared_image|. + sii->DestroySharedImage(gpu::SyncToken(), std::move(shared_image)); + return buffer; } auto gpu_memory_buffer = @@ -776,8 +813,8 @@ if (!contents_texture_) { contents_texture_ = std::make_unique( context_provider, context_factory->GetGpuMemoryBufferManager(), - gpu_memory_buffer_.get(), mappable_shared_image_.get(), size_, - color_space, query_type_, wait_for_release_delay_, + gpu_memory_buffer_.get(), &gpu_memory_buffer_handle_, buffer_format_, + size_, color_space, query_type_, wait_for_release_delay_, is_overlay_candidate_, resource->mailbox_holder.sync_token); } Texture* contents_texture = contents_texture_.get(); @@ -796,8 +833,12 @@ // require a secure output. if (secure_output_only && protected_buffer_state_ == ProtectedBufferState::UNKNOWN && - gpu_memory_buffer_ && protected_native_pixmap_query) { - gfx::GpuMemoryBufferHandle gmb_handle = gpu_memory_buffer_->CloneHandle(); + ((is_mappable_si_enabled_ && !gpu_memory_buffer_handle_.is_null()) || + (!is_mappable_si_enabled_ && gpu_memory_buffer_)) && + protected_native_pixmap_query) { + gfx::GpuMemoryBufferHandle gmb_handle = + is_mappable_si_enabled_ ? gpu_memory_buffer_handle_.Clone() + : gpu_memory_buffer_->CloneHandle(); if (!gmb_handle.native_pixmap_handle.planes.empty()) { base::ScopedFD pixmap_handle(HANDLE_EINTR( dup(gmb_handle.native_pixmap_handle.planes[0].fd.get()))); @@ -920,8 +961,8 @@ // GMBs will go away and clients will end up using either GMBHandle or Mappable // shared image. Below method will be updated accordingly. const void* Buffer::GetBufferId() const { - return kIsMappableSIEnabled - ? static_cast(mappable_shared_image_.get()) + return is_mappable_si_enabled_ + ? static_cast(&gpu_memory_buffer_handle_) : static_cast(gpu_memory_buffer_.get()); } @@ -1035,18 +1076,29 @@ void* memory = nullptr; int stride = 0; std::unique_ptr mapping; + gpu::SharedImageInterface* sii = nullptr; + scoped_refptr shared_image; SkColorType color_type = GetColorTypeForBitmapCreation(GetFormat()); if (color_type == SkColorType::kUnknown_SkColorType) { return bitmap; } - if (kIsMappableSIEnabled) { - if (!mappable_shared_image_) { + if (is_mappable_si_enabled_) { + sii = GetSharedImageInterface(); + if (gpu_memory_buffer_handle_.is_null() || !sii) { return bitmap; } - mapping = mappable_shared_image_->Map(); + // We only need to create this shared image in order to Map the + // |gpu_memory_buffer_handle_| to cpu visible memory. + shared_image = sii->CreateSharedImage( + {GetSharedImageFormat(buffer_format_), size_, gfx::ColorSpace(), + kDefaultMappableSIUsage, "ExoBufferCreateBitmap"}, + gpu::kNullSurfaceHandle, buffer_usage_, + gpu_memory_buffer_handle_.Clone()); + + mapping = shared_image->Map(); if (!mapping) { DLOG(ERROR) << "Failed to map MappableSI."; return bitmap; @@ -1076,7 +1128,13 @@ bitmap.allocPixels(image_info); bitmap.writePixels(pixmap); bitmap.setImmutable(); - kIsMappableSIEnabled ? mapping.reset() : gpu_memory_buffer_->Unmap(); + if (is_mappable_si_enabled_) { + mapping.reset(); + // Destroy this shared image as we no longer need it. + sii->DestroySharedImage(gpu::SyncToken(), std::move(shared_image)); + } else { + gpu_memory_buffer_->Unmap(); + } return bitmap; } diff -Nru chromium-125.0.6422.60/components/exo/buffer.h chromium-125.0.6422.76/components/exo/buffer.h --- chromium-125.0.6422.60/components/exo/buffer.h 2024-05-15 21:46:12.000000000 +0000 +++ chromium-125.0.6422.76/components/exo/buffer.h 2024-05-21 22:42:57.000000000 +0000 @@ -1,4 +1,5 @@ - +// Copyright 2015 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_EXO_BUFFER_H_ @@ -140,8 +141,10 @@ bool use_zero_copy, bool is_overlay_candidate, bool y_invert); - Buffer(scoped_refptr mappable_shared_image, + Buffer(gfx::GpuMemoryBufferHandle gpu_memory_buffer_handle, gfx::BufferFormat buffer_format, + gfx::Size size, + gfx::BufferUsage buffer_usage, unsigned query_type, bool use_zero_copy, bool is_overlay_candidate, @@ -210,17 +213,10 @@ // Contains the content of this buffer instead of |gpu_memory_buffer_| when // MappableSI is enabled. - // TODO(https://issues.chromium.org/u/1/issues/329543541) : Once MappableSI is - // fully launched for Exo::Buffer, refactor code to use - // |mappable_shared_image_| in Buffer::Texture::Texture() instead of creating - // additional shared images out of it. Also update kDefaultMappableSIUsage - // accordingly which will likely match with existing SI usage in - // Buffer::Texture::Texture(). - scoped_refptr mappable_shared_image_; - + gfx::GpuMemoryBufferHandle gpu_memory_buffer_handle_; const gfx::BufferFormat buffer_format_; - const gfx::Size size_; + gfx::BufferUsage buffer_usage_; // Query type that must be used when releasing buffer from a texture. const unsigned query_type_; @@ -275,6 +271,8 @@ ProtectedBufferState protected_buffer_state_ = ProtectedBufferState::UNKNOWN; #endif // BUILDFLAG(USE_ARC_PROTECTED_MEDIA) + const bool is_mappable_si_enabled_; + base::WeakPtrFactory weak_ptr_factory_{this}; }; diff -Nru chromium-125.0.6422.60/components/policy/resources/policy_templates_vi.xtb chromium-125.0.6422.76/components/policy/resources/policy_templates_vi.xtb --- chromium-125.0.6422.60/components/policy/resources/policy_templates_vi.xtb 2024-05-15 21:46:13.000000000 +0000 +++ chromium-125.0.6422.76/components/policy/resources/policy_templates_vi.xtb 2024-05-21 22:42:58.000000000 +0000 @@ -4057,7 +4057,7 @@ Nếu bạn đặt chính sách này thành (0) hoặc không đặt, các tiện ích chưa phát hành trên Cửa hàng Chrome trực tuyến sẽ được cho phép. Nếu bạn đặt chính sách này thành (1) thì các tiện ích chưa phát hành trên Cửa hàng Chrome trực tuyến sẽ bị vô hiệu hoá. Kiểm soát phím tắt dùng để kích hoạt chế độ cài đặt F11/F12 -Chế độ cài đặt trang web +Cài đặt trang web Nếu bạn đặt chính sách này thành Bật, các chính sách không có chung nguồn với các chính sách có độ ưu tiên cao nhất trong một nhóm không thể phân chia sẽ bị bỏ qua. Nếu bạn đặt chính sách này thành Tắt, sẽ không có chính sách nào bị bỏ qua do vấn đề liên quan đến nguồn nữa. Các chính sách sẽ chỉ bị bỏ qua nếu có xung đột và chính sách này không có mức độ ưu tiên cao nhất. diff -Nru chromium-125.0.6422.60/components/search_engines/default_search_manager.cc chromium-125.0.6422.76/components/search_engines/default_search_manager.cc --- chromium-125.0.6422.60/components/search_engines/default_search_manager.cc 2024-05-15 21:46:14.000000000 +0000 +++ chromium-125.0.6422.76/components/search_engines/default_search_manager.cc 2024-05-21 22:42:59.000000000 +0000 @@ -8,9 +8,11 @@ #include #include +#include #include #include "base/check.h" +#include "base/check_is_test.h" #include "base/compiler_specific.h" #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" @@ -20,10 +22,12 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "base/time/time.h" +#include "base/values.h" #include "build/chromeos_buildflags.h" #include "components/pref_registry/pref_registry_syncable.h" #include "components/prefs/pref_service.h" #include "components/prefs/pref_value_map.h" +#include "components/search_engines/choice_made_location.h" #include "components/search_engines/search_engines_pref_names.h" #include "components/search_engines/template_url_data.h" #include "components/search_engines/template_url_data_util.h" @@ -97,6 +101,8 @@ const char DefaultSearchManager::kStarterPackId[] = "starter_pack_id"; const char DefaultSearchManager::kEnforcedByPolicy[] = "enforced_by_policy"; +const char DefaultSearchManager::kChoiceLocation[] = "choice_location"; + DefaultSearchManager::DefaultSearchManager( PrefService* pref_service, search_engines::SearchEngineChoiceService* search_engine_choice_service, @@ -221,17 +227,28 @@ search_engines::ChoiceMadeLocation DefaultSearchManager::GetChoiceMadeLocationForUserSelectedDefaultSearchEngine() const { - if (GetDefaultSearchEngineSource() != Source::FROM_USER) { + if (!pref_service_) { + CHECK_IS_TEST(); + return search_engines::ChoiceMadeLocation::kOther; + } + + const base::Value::Dict& template_url_dictionary = + pref_service_->GetDict(kDefaultSearchProviderDataPrefName); + std::optional choice_made_location = + template_url_dictionary.FindInt(kChoiceLocation); + + if (GetDefaultSearchEngineSource() != Source::FROM_USER || + !choice_made_location.has_value()) { return search_engines::ChoiceMadeLocation::kOther; } - int choice_made_location = - pref_service_->GetInteger(kDefaultSearchProviderChoiceLocationPrefName); - if (choice_made_location < 0 || - choice_made_location > + + if (choice_made_location.value() < 0 || + choice_made_location.value() > static_cast(search_engines::ChoiceMadeLocation::kMaxValue)) { return search_engines::ChoiceMadeLocation::kOther; } - return static_cast(choice_made_location); + return static_cast( + choice_made_location.value()); } const TemplateURLData* DefaultSearchManager::GetFallbackSearchEngine() const { @@ -248,11 +265,11 @@ NotifyObserver(); return; } - + base::Value::Dict template_url_dictionary = TemplateURLDataToDictionary(data); + template_url_dictionary.Set(kChoiceLocation, + static_cast(choice_location)); pref_service_->SetDict(kDefaultSearchProviderDataPrefName, - TemplateURLDataToDictionary(data)); - pref_service_->SetInteger(kDefaultSearchProviderChoiceLocationPrefName, - static_cast(choice_location)); + std::move(template_url_dictionary)); #if BUILDFLAG(IS_ANDROID) // Commit the pref immediately so it isn't lost if the app is killed. pref_service_->CommitPendingWrite(); @@ -262,7 +279,6 @@ void DefaultSearchManager::ClearUserSelectedDefaultSearchEngine() { if (pref_service_) { pref_service_->ClearPref(kDefaultSearchProviderDataPrefName); - pref_service_->ClearPref(kDefaultSearchProviderChoiceLocationPrefName); } else { prefs_default_search_.reset(); NotifyObserver(); diff -Nru chromium-125.0.6422.60/components/search_engines/default_search_manager.h chromium-125.0.6422.76/components/search_engines/default_search_manager.h --- chromium-125.0.6422.60/components/search_engines/default_search_manager.h 2024-05-15 21:46:14.000000000 +0000 +++ chromium-125.0.6422.76/components/search_engines/default_search_manager.h 2024-05-21 22:42:59.000000000 +0000 @@ -36,6 +36,7 @@ static constexpr char kDefaultSearchProviderDataPrefName[] = "default_search_provider_data.template_url_data"; + // TODO(b/340826494): Deprecate this pref. static constexpr char kDefaultSearchProviderChoiceLocationPrefName[] = "default_search_provider_data.choice_location"; @@ -85,6 +86,12 @@ static const char kStarterPackId[]; static const char kEnforcedByPolicy[]; + // This value is not read / written using `TemplateURLDataToDictionary` and + // `TemplateURLDataFromDictionary` as it's related to the default search + // engine state and not the template url one. + // It is only written when `SetUserSelectedDefaultSearchEngine` is called. + static const char kChoiceLocation[]; + enum Source { // Default search engine chosen either from prepopulated engines set for // current country or overriden from kSearchProviderOverrides preference. diff -Nru chromium-125.0.6422.60/components/search_engines/prepopulated_engines.json chromium-125.0.6422.76/components/search_engines/prepopulated_engines.json --- chromium-125.0.6422.60/components/search_engines/prepopulated_engines.json 2024-05-15 21:46:14.000000000 +0000 +++ chromium-125.0.6422.76/components/search_engines/prepopulated_engines.json 2024-05-21 22:42:59.000000000 +0000 @@ -29,7 +29,7 @@ // existing data should get a new version. Otherwise, existing data may // continue to be used and updates made here will not always appear. // Also then run tools/search_engine_choice/generate_search_engine_icons.py. - "kCurrentDataVersion": 160 + "kCurrentDataVersion": 161 }, // The following engines are included in country lists and are added to the diff -Nru chromium-125.0.6422.60/components/search_engines/search_engine_countries-inc.cc chromium-125.0.6422.76/components/search_engines/search_engine_countries-inc.cc --- chromium-125.0.6422.60/components/search_engines/search_engine_countries-inc.cc 2024-05-15 21:46:14.000000000 +0000 +++ chromium-125.0.6422.76/components/search_engines/search_engine_countries-inc.cc 2024-05-21 22:42:59.000000000 +0000 @@ -1260,6 +1260,10 @@ // Countries using the "Spain" engine set. UNHANDLED_COUNTRY(A, D) // Andorra + UNHANDLED_COUNTRY(E, A) // Ceuta & Melilla (not in ISO 3166-1 but included + // in some Chrome country code lists) + UNHANDLED_COUNTRY(I, C) // Canary Islands (not in ISO 3166-1 but included + // in some Chrome country code lists) END_UNHANDLED_COUNTRIES(E, S) // Countries using the "Finland" engine set. @@ -1269,6 +1273,7 @@ // Countries using the "France" engine set. UNHANDLED_COUNTRY(B, F) // Burkina Faso UNHANDLED_COUNTRY(B, J) // Benin + UNHANDLED_COUNTRY(B, L) // St. Barthélemy UNHANDLED_COUNTRY(C, D) // Congo - Kinshasa UNHANDLED_COUNTRY(C, F) // Central African Republic UNHANDLED_COUNTRY(C, G) // Congo - Brazzaville @@ -1284,6 +1289,7 @@ UNHANDLED_COUNTRY(I, P) // Clipperton Island ('IP' is an WinXP-ism; ISO // includes it with France) #endif + UNHANDLED_COUNTRY(M, F) // Saint Martin UNHANDLED_COUNTRY(M, L) // Mali UNHANDLED_COUNTRY(M, Q) // Martinique UNHANDLED_COUNTRY(N, C) // New Caledonia diff -Nru chromium-125.0.6422.60/components/search_engines/template_url_service.cc chromium-125.0.6422.76/components/search_engines/template_url_service.cc --- chromium-125.0.6422.60/components/search_engines/template_url_service.cc 2024-05-15 21:46:14.000000000 +0000 +++ chromium-125.0.6422.76/components/search_engines/template_url_service.cc 2024-05-21 22:42:59.000000000 +0000 @@ -2171,6 +2171,14 @@ } void TemplateURLService::MaybeUpdateDSEViaPrefs(TemplateURL* synced_turl) { + // The DSE is not synced anymore when the `kSearchEngineChoiceTrigger` feature + // is enabled. + // TODO(b/341011768): Revisit whether we need to keep the DSE sync code. + if (search_engines::IsChoiceScreenFlagEnabled( + search_engines::ChoicePromo::kAny)) { + return; + } + if (prefs_ && (synced_turl->sync_guid() == GetDefaultSearchProviderPrefValue(*prefs_))) { default_search_manager_.SetUserSelectedDefaultSearchEngine( @@ -2755,8 +2763,17 @@ const TemplateURL* turl = GetTemplateURLForGUID(new_guid); if (turl) { - default_search_manager_.SetUserSelectedDefaultSearchEngine( - turl->data(), search_engines::ChoiceMadeLocation::kOther); + // The choice location should remain the same as it was before calling + // `OnDefaultSearchProviderGUIDChanged` if we the search engine wasn't + // modified. + search_engines::ChoiceMadeLocation choice_location = + GetDefaultSearchProvider()->prepopulate_id() == turl->prepopulate_id() + ? default_search_manager_ + .GetChoiceMadeLocationForUserSelectedDefaultSearchEngine() + : search_engines::ChoiceMadeLocation::kOther; + + default_search_manager_.SetUserSelectedDefaultSearchEngine(turl->data(), + choice_location); } } diff -Nru chromium-125.0.6422.60/components/strings/components_strings_ar.xtb chromium-125.0.6422.76/components/strings/components_strings_ar.xtb --- chromium-125.0.6422.60/components/strings/components_strings_ar.xtb 2024-05-15 21:46:14.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_ar.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -1399,7 +1399,7 @@ قياس مستوى أداء إعلان ‏يجب أن يحتوي كل إدخال في سلسلة عناوين URL على عنوان URL واحد (كحد أدني) أو اثنين (كحد أقصى). تم التحقق بنجاح -للمساعدة في الحفاظ على أمان بطاقتك، أدخِل رمز التحقق من البطاقة المتوفّر على . +للمساعدة في الحفاظ على أمان بطاقتك، أدخِل رمز التحقق المتوفّر على . تخييم ومشي لمسافة طويلة الانتقال إلى إعدادات الأذونات إذا تكرّر هذا الأمر، ننصحك بالاطّلاع على هذه . diff -Nru chromium-125.0.6422.60/components/strings/components_strings_bs.xtb chromium-125.0.6422.76/components/strings/components_strings_bs.xtb --- chromium-125.0.6422.60/components/strings/components_strings_bs.xtb 2024-05-15 21:46:14.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_bs.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -1853,7 +1853,7 @@ Označavanje Od sada brže potvrdite kartice korištenjem funkcije WebAuthn Blokiranje: -SMS +Poruka Broj virtuelne kartice: Ovi pretraživači su popularni u vašoj regiji i prikazuju se nasumičnim redoslijedom Nešto nije uredu diff -Nru chromium-125.0.6422.60/components/strings/components_strings_ca.xtb chromium-125.0.6422.76/components/strings/components_strings_ca.xtb --- chromium-125.0.6422.60/components/strings/components_strings_ca.xtb 2024-05-15 21:46:14.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_ca.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -529,7 +529,7 @@ El text i el contingut de la pàgina s'envien a Google i es poden utilitzar per millorar aquesta funció. Més informació Adreces d'interès de -Normalment et connectes a llocs web de manera segura, però aquesta vegada Chrome no ha pogut utilitzar una connexió segura. És possible que un atacant estigui provant d'espiar o de modificar la connexió a la xarxa. Més informació +Normalment et connectes a llocs web de manera segura, però aquesta vegada Chrome no ha pogut utilitzar una connexió segura. És possible que un atacant estigui provant d'espiar o de modificar la connexió de xarxa. Més informació Error de serialització Feines d'oficinista i d'administratiu Configuració avançada @@ -1385,7 +1385,7 @@ Si ja està inclòs a la llista de programes autoritzats per accedir a la xarxa, proveu de suprimir-lo de la llista i torneu-lo a afegir. Botó Troba el meu dispositiu: activa'l per anar a Troba el meu dispositiu al Compte de Google -Els administradors d'aquest dispositiu han configurat la connexió de la xarxa, la qual cosa és possible que els permeti veure el trànsit de la teva xarxa, inclosos els llocs web que visites. +Els administradors d'aquest dispositiu han configurat la connexió de xarxa, la qual cosa és possible que els permeti veure el trànsit de la teva xarxa, inclosos els llocs web que visites. Biometria S'ha reprès la compartició de pantalla S'ha posat en pausa la compartició de pantalla @@ -1442,7 +1442,7 @@ Activa les dades mòbils o la Wi-Fi. {0,plural, =1{S'ha bloquejat el fitxer perquè no es pugui penjar}other{S'han bloquejat fitxers perquè no es puguin penjar}} Quan Chrome marca esdeveniments de seguretat, se n'envien les dades rellevants a l'administrador. Per exemple, URL de pàgines que visites a Chrome, noms o metadades de fitxers, bloquejos de navegadors o de pestanyes i el nom d'usuari que fas servir per iniciar la sessió en aplicacions web, al dispositiu i a Chrome. -Connexió a xarxes Wi-Fi +Connexió de xarxa Wi-Fi bloqueig del teclat Comproveu el servidor intermediari, el tallafoc i la configuració de DNS Durant l'actualització, no podràs fer servir el dispositiu durant un màxim de 10 minuts. @@ -1504,7 +1504,7 @@ Comprova les contrasenyes desades ha instal·lat extensions per obtenir funcions addicionals. Les extensions tenen accés a algunes de les teves dades. Encunyació múltiple a l'esquerra -L'ús que fas del dispositiu +Ús del teu dispositiu Petits electrodomèstics de cuina Vehicles híbrids i alternatius Peix i marisc @@ -3446,7 +3446,7 @@ no pot gestionar la sol·licitud en aquest moment. S'ha esgotat el temps d'espera per a la baixada No tradueixis mai de: -Normalment et connectes a aquest lloc web de manera segura, però aquesta vegada Chrome no ha pogut utilitzar una connexió segura. És possible que un atacant estigui provant d'espiar o de modificar la connexió a la xarxa. Més informació +Normalment et connectes a aquest lloc web de manera segura, però aquesta vegada Chrome no ha pogut utilitzar una connexió segura. És possible que un atacant estigui provant d'espiar o de modificar la connexió de xarxa. Més informació Els atacants del lloc web que proves de visitar poden instal·lar programari nociu que et robi o et suprimeixi dades com ara la contrasenya, fotos, missatges o el número de la targeta de crèdit. El fet que els anuncis que veus es personalitzin o no pot dependre de molts factors, com ara d'aquesta opció de configuració, dels anuncis suggerits per llocs web, de la configuració de galetes i de si el lloc web que estàs visitant personalitza els anuncis. Obtén més informació sobre com pots gestionar la privadesa d'anuncis. El valor es troba fora de l'interval . diff -Nru chromium-125.0.6422.60/components/strings/components_strings_de.xtb chromium-125.0.6422.76/components/strings/components_strings_de.xtb --- chromium-125.0.6422.60/components/strings/components_strings_de.xtb 2024-05-15 21:46:14.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_de.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -248,7 +248,7 @@ Versuche noch einmal, deine Dateien zu verschieben Chrome verfügt über integrierte Sicherheitsfunktionen wie Google Safe Browsing, die dich beim Surfen schützen. Safe Browsing hat kürzlich Malware auf gefunden, eingebettet in die Website, die du besuchen möchtest. Passkey auf einem anderen Gerät verwenden -Darf nachfragen, wenn sie Dateien oder Ordner auf meinem Gerät bearbeiten möchte +Darf Anfragen, Dateien und Ordner auf meinem Gerät zu bearbeiten Zum Fortfahren öffnen Rechtsseitige Fensterfaltung Lochen diff -Nru chromium-125.0.6422.60/components/strings/components_strings_fr.xtb chromium-125.0.6422.76/components/strings/components_strings_fr.xtb --- chromium-125.0.6422.60/components/strings/components_strings_fr.xtb 2024-05-15 21:46:15.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_fr.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -3179,7 +3179,7 @@ Drames (films TV) Délai de copie dépassé Fermez les autres onglets ou programmes -Saisir votre code CVC +Saisissez votre code CVC Impossible d'expédier à cette adresse. Sélectionnez-en une autre.   Importation bloquée diff -Nru chromium-125.0.6422.60/components/strings/components_strings_iw.xtb chromium-125.0.6422.76/components/strings/components_strings_iw.xtb --- chromium-125.0.6422.60/components/strings/components_strings_iw.xtb 2024-05-15 21:46:15.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_iw.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -2635,7 +2635,7 @@ סרטוני וידאו אונליין הנדסה אזרחית רוצה להשתמש בכרטיסים בכל המכשירים שברשותך? -‏מכשירי USB +‏התקני USB ‏מצב DnsOverHttps לא חוקי. היאבקות ביטול המעקב אחר המחירים @@ -3104,7 +3104,7 @@ קובץ אחד נחסם מסיבות שקשורות לתוכן Fabric (Archival) ‏יצירה מהירה של מצגת חדשה ב-Google Slides -‏התקני HID +‏מכשירי ממשק אנושי (HID) ‏צוינו שרתי Proxy קבועים וכתובת אתר של הסקריפט מסוג ‎.Pac ‏3.5x5 אינץ' מנועי חיפוש diff -Nru chromium-125.0.6422.60/components/strings/components_strings_no.xtb chromium-125.0.6422.76/components/strings/components_strings_no.xtb --- chromium-125.0.6422.60/components/strings/components_strings_no.xtb 2024-05-15 21:46:15.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_no.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -1300,7 +1300,7 @@ Etter gruppe Ikke nå Du kan miste tilgangen til Google-kontoen din. Chrome anbefaler at du endrer passordet ditt nå. Du blir bedt om å logge på. -Påminnelse: En lagret kampanjekode er tilgjengelig +Påminnelse: En lagret promoteringskode er tilgjengelig Antiperspiranter, deodoranter og kroppsspray Skuff 4 Varebiler, kassebiler og SUV-er diff -Nru chromium-125.0.6422.60/components/strings/components_strings_pl.xtb chromium-125.0.6422.76/components/strings/components_strings_pl.xtb --- chromium-125.0.6422.60/components/strings/components_strings_pl.xtb 2024-05-15 21:46:15.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_pl.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -3807,7 +3807,7 @@ Koncerty i festiwale muzyczne Powiadomienia w Chrome muszą być włączone. Aby je włączyć, otwórz . Taca 11 -Inne teraz dostępne funkcje ochrony prywatności w reklamach +Pozostałe dostępne teraz funkcje ochrony prywatności w reklamach Pomiń Pielęgnacja ogrodu Odczytywanie unikalnego identyfikatora Twojego urządzenia diff -Nru chromium-125.0.6422.60/components/strings/components_strings_sv.xtb chromium-125.0.6422.76/components/strings/components_strings_sv.xtb --- chromium-125.0.6422.60/components/strings/components_strings_sv.xtb 2024-05-15 21:46:15.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_sv.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -794,7 +794,7 @@ Häftning Hantera filer du har laddat ned i Chrome Visa information från webben -Enhetens maskinvaruspecifikation och statistik som historiken över CPU-/RAM-användning +Enhetens hårdvaruspecifikation och statistik som historiken över CPU-/RAM-användning att köra nätverksdiagnostik 1 till N-ordning Papper (bestruket) diff -Nru chromium-125.0.6422.60/components/strings/components_strings_tr.xtb chromium-125.0.6422.76/components/strings/components_strings_tr.xtb --- chromium-125.0.6422.60/components/strings/components_strings_tr.xtb 2024-05-15 21:46:15.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_tr.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -1398,7 +1398,7 @@ Bir reklamın ne kadar iyi performans gösterdiğini ölçme Her URL dizesi girişinde 1-2 URL bulunmalıdır. Doğrulama başarılı -Kartınızı güvende tutmak için yer alan CVC kodunu girin +Kartınızı güvende tutmak için yer alan CVC'yi girin Gezi ve Kampçılık İzin ayarlarına git Bunu çok sık görüyorsanız, şunları deneyin: . diff -Nru chromium-125.0.6422.60/components/strings/components_strings_vi.xtb chromium-125.0.6422.76/components/strings/components_strings_vi.xtb --- chromium-125.0.6422.60/components/strings/components_strings_vi.xtb 2024-05-15 21:46:15.000000000 +0000 +++ chromium-125.0.6422.76/components/strings/components_strings_vi.xtb 2024-05-21 22:42:59.000000000 +0000 @@ -1654,7 +1654,7 @@ {COUNT,plural, =1{Trang 1}other{Trang {COUNT}}} Từ giờ trở đi, Chrome sẽ xác minh danh tính của bạn trước khi điền phương thức thanh toán. Bạn có thể cập nhật lựa chọn này bất cứ lúc nào trong phần . Tím -Chế độ cài đặt trang web +Cài đặt trang web Không cho phép Chữ ký xác minh không hợp lệ diff -Nru chromium-125.0.6422.60/components/viz/common/features.cc chromium-125.0.6422.76/components/viz/common/features.cc --- chromium-125.0.6422.60/components/viz/common/features.cc 2024-05-15 21:46:17.000000000 +0000 +++ chromium-125.0.6422.76/components/viz/common/features.cc 2024-05-21 22:43:00.000000000 +0000 @@ -338,7 +338,7 @@ // Enabled by default 03/2014, kept to run a holdback experiment. BASE_FEATURE(kEvictionUnlocksResources, "EvictionUnlocksResources", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); // If enabled, FrameRateDecider will toggle to half framerate if there's only // one video on screen whose framerate is lower than the display vsync and in diff -Nru chromium-125.0.6422.60/debian/changelog chromium-125.0.6422.76/debian/changelog --- chromium-125.0.6422.60/debian/changelog 2024-05-16 22:55:41.000000000 +0000 +++ chromium-125.0.6422.76/debian/changelog 2024-05-21 20:12:47.000000000 +0000 @@ -1,3 +1,17 @@ +chromium (125.0.6422.76-1~deb12u1) bookworm-security; urgency=high + + * New upstream security release. + - CVE-2024-5157: Use after free in Scheduling. Reported by Looben Yang. + - CVE-2024-5158: Type Confusion in V8. + Reported by Zhenghang Xiao (@Kipreyyy). + - CVE-2024-5159: Heap buffer overflow in ANGLE. + Reported by David Sievers (@loknop). + - CVE-2024-5160: Heap buffer overflow in Dawn. Reported by wgslfuzz. + * Don't silently ignore arguments meant for the wrapper script if chromium + args happen to come first (closes: #1068096). + + -- Andres Salomon Tue, 21 May 2024 16:12:47 -0400 + chromium (125.0.6422.60-1~deb12u1) bookworm-security; urgency=high * New upstream stable release. diff -Nru chromium-125.0.6422.60/debian/patches/i386/angle-lockfree.patch chromium-125.0.6422.76/debian/patches/i386/angle-lockfree.patch --- chromium-125.0.6422.60/debian/patches/i386/angle-lockfree.patch 2023-10-23 23:00:38.000000000 +0000 +++ chromium-125.0.6422.76/debian/patches/i386/angle-lockfree.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -author: Andres Salomon -description: revert compile-time lockfree check; switch back to a runtime check. - -This reverts the following: - -"commit ce8ce6f81eff8a84e2ea59930cb995b1107181e2 (origin/chromium/5572) -Author: Kimmo Kinnunen -Date: Tue Jan 31 13:06:47 2023 +0200 - - Remove ASSERT from AtomicSerial, use static_assert - - ASSERT is not constexpr, while the AtomicSerial constructor was. - This would cause compile errors. - - Bug: angleproject:7989 - Change-Id: Ib6a438d4c055378d4f2f667285b0d2e99f2522ad - Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4205892 -" - -The problem is that this is a compile-time check to ensure that a std::atomic -doesn't require a mutex, but for i386 we can't guarantee that; instead, i386 checks -at runtime for the relevant CPU instructions. So we need to revert back to a runtime -assertion. - -Since this is in ANGLE rather than Chromium, hopefully there's a chance they'll take a -fix upstream; probably a revert combined with dropping the "constexpr". - ---- a/third_party/angle/src/libANGLE/renderer/serial_utils.h -+++ b/third_party/angle/src/libANGLE/renderer/serial_utils.h -@@ -119,6 +119,7 @@ class Serial final - class AtomicQueueSerial final - { - public: -+ constexpr AtomicQueueSerial() : mValue(kInvalid) { ASSERT(mValue.is_lock_free()); } - AtomicQueueSerial &operator=(const Serial &other) - { - mValue.store(other.mValue, std::memory_order_release); -@@ -127,9 +128,8 @@ class AtomicQueueSerial final - Serial getSerial() const { return Serial(mValue.load(std::memory_order_consume)); } - - private: -+ std::atomic mValue; - static constexpr uint64_t kInvalid = 0; -- std::atomic mValue = kInvalid; -- static_assert(decltype(mValue)::is_always_lock_free, "Must always be lock free"); - }; - - // Used as default/initial serial diff -Nru chromium-125.0.6422.60/debian/scripts/chromium chromium-125.0.6422.76/debian/scripts/chromium --- chromium-125.0.6422.60/debian/scripts/chromium 2024-03-27 03:42:35.000000000 +0000 +++ chromium-125.0.6422.76/debian/scripts/chromium 2024-05-21 20:12:47.000000000 +0000 @@ -11,6 +11,7 @@ GDB=/usr/bin/gdb LIBDIR=/usr/lib/$APPNAME BUILD_DIST="@BUILD_DIST@" +CHROMIUM_FLAGS="" usage () { echo "$APPNAME [-h|--help] [-g|--debug] [--temp-profile] [options] [URL]" @@ -105,9 +106,12 @@ --enable-remote-extensions ) CHROMIUM_FLAGS="$CHROMIUM_FLAGS --enable-remote-extensions" shift ;; - -- ) # Stop option prcessing + -- ) # Stop option processing shift break ;; + --* ) # Preserve (unknown to us) chromium flags + CHROMIUM_FLAGS="$CHROMIUM_FLAGS $1" + shift ;; * ) break ;; esac diff -Nru chromium-125.0.6422.60/gpu/command_buffer/build_cmd_buffer_lib.py chromium-125.0.6422.76/gpu/command_buffer/build_cmd_buffer_lib.py --- chromium-125.0.6422.60/gpu/command_buffer/build_cmd_buffer_lib.py 2024-05-15 21:46:22.000000000 +0000 +++ chromium-125.0.6422.76/gpu/command_buffer/build_cmd_buffer_lib.py 2024-05-21 22:43:02.000000000 +0000 @@ -2954,7 +2954,9 @@ result->SetNumResults(0); helper_->%(func_name)s(%(arg_string)s, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(%(last_arg_name)s); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -4456,7 +4458,9 @@ f.write( " helper_->%s(%s, GetResultShmId(), result.offset());\n" % (func.name, arg_string)) - f.write(" WaitForCmd();\n") + f.write(" if (!WaitForCmd()) {\n") + f.write(" return %s; \n" % error_value) + f.write(" }\n") f.write(" %s result_value = *result" % func.return_type) if func.return_type == "GLboolean": f.write(" != 0") diff -Nru chromium-125.0.6422.60/gpu/command_buffer/client/gles2_implementation.cc chromium-125.0.6422.76/gpu/command_buffer/client/gles2_implementation.cc --- chromium-125.0.6422.60/gpu/command_buffer/client/gles2_implementation.cc 2024-05-15 21:46:22.000000000 +0000 +++ chromium-125.0.6422.76/gpu/command_buffer/client/gles2_implementation.cc 2024-05-21 22:43:02.000000000 +0000 @@ -603,7 +603,9 @@ } *result = GL_NO_ERROR; helper_->GetError(GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_NO_ERROR; + } GLenum error = *result; if (error == GL_NO_ERROR) { error = GetClientSideGLError(); @@ -728,7 +730,9 @@ } *result = 0; helper_->IsEnabled(cap, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } state = (*result) != 0; } @@ -749,7 +753,9 @@ auto result = GetResultAs(); *result = 0; helper_->IsEnablediOES(target, index, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } state = (*result) != 0; } @@ -1368,7 +1374,9 @@ *result = 0; helper_->GetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return 0; + } return *result; } @@ -1671,7 +1679,9 @@ result->SetNumResults(0); helper_->GetVertexAttribPointerv(index, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(ptr); GPU_CLIENT_LOG_CODE_BLOCK(num_results = result->GetNumResults()); } @@ -1746,7 +1756,9 @@ *result = -1; helper_->GetAttribLocation(program, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return -1; + } helper_->SetBucketSize(kResultBucketId, 0); return *result; } @@ -1774,7 +1786,9 @@ *result = -1; helper_->GetUniformLocation(program, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return -1; + } helper_->SetBucketSize(kResultBucketId, 0); return *result; } @@ -1807,7 +1821,9 @@ result->SetNumResults(0); helper_->GetUniformIndices(program, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } if (result->GetNumResults() != count) { return false; } @@ -1867,7 +1883,9 @@ *result = -1; helper_->GetFragDataIndexEXT(program, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return -1; + } helper_->SetBucketSize(kResultBucketId, 0); return *result; } @@ -1896,7 +1914,9 @@ *result = -1; helper_->GetFragDataLocation(program, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return -1; + } helper_->SetBucketSize(kResultBucketId, 0); return *result; } @@ -1925,7 +1945,9 @@ *result = GL_INVALID_INDEX; helper_->GetUniformBlockIndex(program, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_INVALID_INDEX; + } helper_->SetBucketSize(kResultBucketId, 0); return *result; } @@ -1970,7 +1992,9 @@ *result = GL_INVALID_INDEX; helper_->GetProgramResourceIndex(program, program_interface, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_INVALID_INDEX; + } helper_->SetBucketSize(kResultBucketId, 0); return *result; } @@ -2015,7 +2039,9 @@ helper_->GetProgramResourceName(program, program_interface, index, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } success = !!*result; } if (success) { @@ -2074,7 +2100,9 @@ helper_->GetProgramResourceiv(program, program_interface, index, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } if (length) { *length = result->GetNumResults(); } @@ -2146,7 +2174,9 @@ helper_->GetProgramResourceLocation(program, program_interface, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return -1; + } helper_->SetBucketSize(kResultBucketId, 0); return *result; } @@ -4023,7 +4053,9 @@ result->success = false; helper_->GetActiveAttrib(program, index, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } bool success = !!result->success; if (success) { if (size) { @@ -4091,7 +4123,9 @@ result->success = false; helper_->GetActiveUniform(program, index, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } bool success = !!result->success; if (success) { if (size) { @@ -4158,7 +4192,9 @@ *result = 0; helper_->GetActiveUniformBlockName(program, index, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } bool success = !!result; if (success) { // Note: this can invalidate |result|. @@ -4205,7 +4241,9 @@ result->SetNumResults(0); helper_->GetActiveUniformBlockiv(program, index, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } if (result->GetNumResults() > 0) { if (params) { result->CopyResult(params); @@ -4262,7 +4300,9 @@ result->SetNumResults(0); helper_->GetActiveUniformsiv(program, kResultBucketId, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } bool success = result->GetNumResults() == count; if (success) { if (params) { @@ -4338,7 +4378,9 @@ transfer_buffer_->GetOffset(result), checked_size); int32_t token = helper_->InsertToken(); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } if (count) { *count = result->GetNumResults(); } @@ -4380,7 +4422,9 @@ result->success = false; helper_->GetShaderPrecisionFormat(shadertype, precisiontype, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } if (result->success) static_state_.shader_precisions[key] = *result; } @@ -4493,7 +4537,9 @@ result->success = false; helper_->GetTransformFeedbackVarying(program, index, kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } if (result->success) { if (size) { *size = result->size; @@ -4561,7 +4607,9 @@ } result->SetNumResults(0); helper_->GetUniformfv(program, location, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -4589,7 +4637,9 @@ } result->SetNumResults(0); helper_->GetUniformiv(program, location, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -4618,7 +4668,9 @@ result->SetNumResults(0); helper_->GetUniformuiv(program, location, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -4796,7 +4848,9 @@ dst_sk_color_type, dst_sk_alpha_type, shm_id, shm_offset, color_space_offset, pixels_offset, mailbox_offset); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } if (!*readback_result) { return GL_FALSE; } @@ -4945,7 +4999,9 @@ helper_->ReadPixels(xoffset, y_index, width, num_rows, format, type, buffer.shm_id(), buffer.offset(), GetResultShmId(), result.offset(), false); - WaitForCmd(); + if (!WaitForCmd()) { + break; + } // If it was not marked as successful exit. if (!result->success) { break; @@ -5654,7 +5710,9 @@ } result->SetNumResults(0); helper_->GetVertexAttribfv(index, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -5687,7 +5745,9 @@ } result->SetNumResults(0); helper_->GetVertexAttribiv(index, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -5721,7 +5781,9 @@ result->SetNumResults(0); helper_->GetVertexAttribIiv(index, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -5755,7 +5817,9 @@ result->SetNumResults(0); helper_->GetVertexAttribIuiv(index, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -5790,7 +5854,9 @@ *result = 0; helper_->EnableFeatureCHROMIUM(kResultBucketId, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return false; + } helper_->SetBucketSize(kResultBucketId, 0); GPU_CLIENT_LOG(" returned " << GLES2Util::GetStringBool(*result)); return *result != 0; @@ -5965,7 +6031,9 @@ GetResultShmId(), result.offset()); // TODO(zmo): For write only mode with MAP_INVALID_*_BIT, we should // consider an early return without WaitForCmd(). crbug.com/465804. - WaitForCmd(); + if (!WaitForCmd()) { + return nullptr; + } if (*result) { const GLbitfield kInvalidateBits = GL_MAP_INVALIDATE_BUFFER_BIT | GL_MAP_INVALIDATE_RANGE_BIT; @@ -7227,7 +7295,9 @@ *result = GL_WAIT_FAILED; helper_->ClientWaitSync(ToGLuint(sync), flags, timeout, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_WAIT_FAILED; + } localResult = *result; GPU_CLIENT_LOG("returned " << localResult); } @@ -7305,7 +7375,9 @@ result->SetNumResults(0); helper_->GetInternalformativ(target, format, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); diff -Nru chromium-125.0.6422.60/gpu/command_buffer/client/gles2_implementation_impl_autogen.h chromium-125.0.6422.76/gpu/command_buffer/client/gles2_implementation_impl_autogen.h --- chromium-125.0.6422.60/gpu/command_buffer/client/gles2_implementation_impl_autogen.h 2024-05-15 21:46:22.000000000 +0000 +++ chromium-125.0.6422.76/gpu/command_buffer/client/gles2_implementation_impl_autogen.h 2024-05-21 22:43:02.000000000 +0000 @@ -207,7 +207,9 @@ } *result = 0; helper_->CheckFramebufferStatus(target, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FRAMEBUFFER_UNSUPPORTED; + } GLenum result_value = *result; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -882,7 +884,9 @@ } result->SetNumResults(0); helper_->GetBooleanv(pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -910,7 +914,9 @@ } result->SetNumResults(0); helper_->GetBooleani_v(pname, index, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(data); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -939,7 +945,9 @@ result->SetNumResults(0); helper_->GetBufferParameteri64v(target, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -969,7 +977,9 @@ result->SetNumResults(0); helper_->GetBufferParameteriv(target, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -994,7 +1004,9 @@ } result->SetNumResults(0); helper_->GetFloatv(pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1029,7 +1041,9 @@ result->SetNumResults(0); helper_->GetFramebufferAttachmentParameteriv( target, attachment, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1054,7 +1068,9 @@ } result->SetNumResults(0); helper_->GetInteger64v(pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1082,7 +1098,9 @@ } result->SetNumResults(0); helper_->GetIntegeri_v(pname, index, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(data); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1109,7 +1127,9 @@ } result->SetNumResults(0); helper_->GetInteger64i_v(pname, index, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(data); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1135,7 +1155,9 @@ } result->SetNumResults(0); helper_->GetIntegerv(pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1163,7 +1185,9 @@ } result->SetNumResults(0); helper_->GetProgramiv(program, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1220,7 +1244,9 @@ result->SetNumResults(0); helper_->GetRenderbufferParameteriv(target, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1249,7 +1275,9 @@ result->SetNumResults(0); helper_->GetSamplerParameterfv(sampler, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1279,7 +1307,9 @@ result->SetNumResults(0); helper_->GetSamplerParameteriv(sampler, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1307,7 +1337,9 @@ } result->SetNumResults(0); helper_->GetShaderiv(shader, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1396,7 +1428,9 @@ } result->SetNumResults(0); helper_->GetSynciv(ToGLuint(sync), pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(values); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1427,7 +1461,9 @@ } result->SetNumResults(0); helper_->GetTexParameterfv(target, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1456,7 +1492,9 @@ } result->SetNumResults(0); helper_->GetTexParameteriv(target, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -1541,7 +1579,9 @@ } *result = 0; helper_->IsBuffer(buffer, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -1560,7 +1600,9 @@ } *result = 0; helper_->IsFramebuffer(framebuffer, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -1578,7 +1620,9 @@ } *result = 0; helper_->IsProgram(program, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -1597,7 +1641,9 @@ } *result = 0; helper_->IsRenderbuffer(renderbuffer, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -1615,7 +1661,9 @@ } *result = 0; helper_->IsSampler(sampler, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -1633,7 +1681,9 @@ } *result = 0; helper_->IsShader(shader, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -1651,7 +1701,9 @@ } *result = 0; helper_->IsSync(ToGLuint(sync), GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -1669,7 +1721,9 @@ } *result = 0; helper_->IsTexture(texture, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -1689,7 +1743,9 @@ *result = 0; helper_->IsTransformFeedback(transformfeedback, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -3093,7 +3149,9 @@ } *result = 0; helper_->IsVertexArrayOES(array, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return GL_FALSE; + } GLboolean result_value = *result != 0; GPU_CLIENT_LOG("returned " << result_value); CheckGLError(); @@ -3187,7 +3245,9 @@ result->SetNumResults(0); helper_->GetProgramInterfaceiv(program, program_interface, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -3905,7 +3965,9 @@ result->SetNumResults(0); helper_->GetFramebufferPixelLocalStorageParameterfvANGLE( plane, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { @@ -3939,7 +4001,9 @@ result->SetNumResults(0); helper_->GetFramebufferPixelLocalStorageParameterivANGLE( plane, pname, GetResultShmId(), result.offset()); - WaitForCmd(); + if (!WaitForCmd()) { + return; + } result->CopyResult(params); GPU_CLIENT_LOG_CODE_BLOCK({ for (int32_t i = 0; i < result->GetNumResults(); ++i) { diff -Nru chromium-125.0.6422.60/gpu/config/gpu_lists_version.h chromium-125.0.6422.76/gpu/config/gpu_lists_version.h --- chromium-125.0.6422.60/gpu/config/gpu_lists_version.h 2024-05-15 21:49:08.000000000 +0000 +++ chromium-125.0.6422.76/gpu/config/gpu_lists_version.h 2024-05-21 22:51:29.000000000 +0000 @@ -3,6 +3,6 @@ #ifndef GPU_CONFIG_GPU_LISTS_VERSION_H_ #define GPU_CONFIG_GPU_LISTS_VERSION_H_ -#define GPU_LISTS_VERSION "3ac3319bff9f3e139d632e3d195e3d2d43d86e37" +#define GPU_LISTS_VERSION "67dcf7562b8fb4ab0819135589e37a97bcc8942c" #endif // GPU_CONFIG_GPU_LISTS_VERSION_H_ diff -Nru chromium-125.0.6422.60/gpu/webgpu/DAWN_VERSION chromium-125.0.6422.76/gpu/webgpu/DAWN_VERSION --- chromium-125.0.6422.60/gpu/webgpu/DAWN_VERSION 2024-05-15 21:49:08.000000000 +0000 +++ chromium-125.0.6422.76/gpu/webgpu/DAWN_VERSION 2024-05-21 22:51:29.000000000 +0000 @@ -1 +1 @@ -1346aaee0b017cb0bace682ea165c17e01e5b231 \ No newline at end of file +bfe28e306e60e986c73adf25cacfc3d246fd1d10 \ No newline at end of file diff -Nru chromium-125.0.6422.60/infra/config/generated/testing/variants.pyl chromium-125.0.6422.76/infra/config/generated/testing/variants.pyl --- chromium-125.0.6422.60/infra/config/generated/testing/variants.pyl 2024-05-15 21:46:22.000000000 +0000 +++ chromium-125.0.6422.76/infra/config/generated/testing/variants.pyl 2024-05-21 22:43:03.000000000 +0000 @@ -15,7 +15,7 @@ 'identifier': 'BRYA_RELEASE_BETA', 'skylab': { 'cros_board': 'brya', - 'cros_img': 'brya-release/R121-15699.54.0', + 'cros_img': 'brya-release/R124-15823.16.0', 'dut_pool': 'chrome', }, }, @@ -23,7 +23,7 @@ 'identifier': 'BRYA_RELEASE_DEV', 'skylab': { 'cros_board': 'brya', - 'cros_img': 'brya-release/R123-15770.0.0', + 'cros_img': 'brya-release/R125-15843.0.0', 'dut_pool': 'chrome', }, }, @@ -39,7 +39,7 @@ 'identifier': 'BRYA_RELEASE_STABLE', 'skylab': { 'cros_board': 'brya', - 'cros_img': 'brya-release/R121-15699.58.0', + 'cros_img': 'brya-release/R123-15786.48.0', 'dut_pool': 'chrome', }, }, @@ -47,7 +47,7 @@ 'identifier': 'FIZZ_RELEASE_BETA', 'skylab': { 'cros_board': 'fizz', - 'cros_img': 'fizz-release/R122-15753.13.0', + 'cros_img': 'fizz-release/R124-15823.16.0', 'dut_pool': 'chrome', }, }, @@ -55,7 +55,7 @@ 'identifier': 'FIZZ_RELEASE_DEV', 'skylab': { 'cros_board': 'fizz', - 'cros_img': 'fizz-release/R123-15770.0.0', + 'cros_img': 'fizz-release/R125-15843.0.0', 'dut_pool': 'chrome', }, }, @@ -71,7 +71,7 @@ 'identifier': 'FIZZ_RELEASE_STABLE', 'skylab': { 'cros_board': 'fizz', - 'cros_img': 'fizz-release/R121-15699.58.0', + 'cros_img': 'fizz-release/R123-15786.48.0', 'dut_pool': 'chrome', }, }, @@ -79,7 +79,7 @@ 'identifier': 'GUYBRUSH_RELEASE_BETA', 'skylab': { 'cros_board': 'guybrush', - 'cros_img': 'guybrush-release/R122-15753.13.0', + 'cros_img': 'guybrush-release/R124-15823.16.0', 'dut_pool': 'chrome', }, }, @@ -87,7 +87,7 @@ 'identifier': 'GUYBRUSH_RELEASE_DEV', 'skylab': { 'cros_board': 'guybrush', - 'cros_img': 'guybrush-release/R123-15770.0.0', + 'cros_img': 'guybrush-release/R125-15843.0.0', 'dut_pool': 'chrome', }, }, @@ -103,7 +103,7 @@ 'identifier': 'GUYBRUSH_RELEASE_STABLE', 'skylab': { 'cros_board': 'guybrush', - 'cros_img': 'guybrush-release/R121-15699.58.0', + 'cros_img': 'guybrush-release/R123-15786.48.0', 'dut_pool': 'chrome', }, }, @@ -127,7 +127,7 @@ 'identifier': 'PUFF_RELEASE_BETA', 'skylab': { 'cros_board': 'puff', - 'cros_img': 'puff-release/R122-15753.13.0', + 'cros_img': 'puff-release/R124-15823.16.0', 'dut_pool': 'chrome', }, }, @@ -135,7 +135,7 @@ 'identifier': 'PUFF_RELEASE_DEV', 'skylab': { 'cros_board': 'puff', - 'cros_img': 'puff-release/R123-15770.0.0', + 'cros_img': 'puff-release/R125-15843.0.0', 'dut_pool': 'chrome', }, }, @@ -151,7 +151,7 @@ 'identifier': 'PUFF_RELEASE_STABLE', 'skylab': { 'cros_board': 'puff', - 'cros_img': 'puff-release/R121-15699.58.0', + 'cros_img': 'puff-release/R123-15786.48.0', 'dut_pool': 'chrome', }, }, @@ -251,64 +251,64 @@ }, 'LACROS_VERSION_SKEW_BETA': { 'identifier': 'Lacros version skew testing ash beta', - 'description': 'Run with ash-chrome version 125.0.6422.31', + 'description': 'Run with ash-chrome version 125.0.6422.64', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v125.0.6422.31', - 'revision': 'version:125.0.6422.31', + 'location': 'lacros_version_skew_tests_v125.0.6422.64', + 'revision': 'version:125.0.6422.64', }, ], }, }, 'LACROS_VERSION_SKEW_CANARY': { 'identifier': 'Lacros version skew testing ash canary', - 'description': 'Run with ash-chrome version 126.0.6477.0', + 'description': 'Run with ash-chrome version 127.0.6489.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v126.0.6477.0', - 'revision': 'version:126.0.6477.0', + 'location': 'lacros_version_skew_tests_v127.0.6489.0', + 'revision': 'version:127.0.6489.0', }, ], }, }, 'LACROS_VERSION_SKEW_DEV': { 'identifier': 'Lacros version skew testing ash dev', - 'description': 'Run with ash-chrome version 126.0.6455.0', + 'description': 'Run with ash-chrome version 126.0.6475.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v126.0.6455.0', - 'revision': 'version:126.0.6455.0', + 'location': 'lacros_version_skew_tests_v126.0.6475.0', + 'revision': 'version:126.0.6475.0', }, ], }, }, 'LACROS_VERSION_SKEW_STABLE': { 'identifier': 'Lacros version skew testing ash stable', - 'description': 'Run with ash-chrome version 124.0.6367.154', + 'description': 'Run with ash-chrome version 124.0.6367.219', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v124.0.6367.154', - 'revision': 'version:124.0.6367.154', + 'location': 'lacros_version_skew_tests_v124.0.6367.219', + 'revision': 'version:124.0.6367.219', }, ], }, diff -Nru chromium-125.0.6422.60/infra/config/targets/cros-skylab-variants.json chromium-125.0.6422.76/infra/config/targets/cros-skylab-variants.json --- chromium-125.0.6422.60/infra/config/targets/cros-skylab-variants.json 2024-05-15 21:46:22.000000000 +0000 +++ chromium-125.0.6422.76/infra/config/targets/cros-skylab-variants.json 2024-05-21 22:43:03.000000000 +0000 @@ -26,8 +26,8 @@ "CROS_BRYA_RELEASE_DEV": { "skylab": { "cros_board": "brya", - "cros_chrome_version": "123.0.6276.0", - "cros_img": "brya-release/R123-15770.0.0", + "cros_chrome_version": "125.0.6398.0", + "cros_img": "brya-release/R125-15843.0.0", "dut_pool": "chrome" }, "enabled": true, @@ -36,8 +36,8 @@ "CROS_BRYA_RELEASE_BETA": { "skylab": { "cros_board": "brya", - "cros_chrome_version": "121.0.6167.155", - "cros_img": "brya-release/R121-15699.54.0", + "cros_chrome_version": "124.0.6367.24", + "cros_img": "brya-release/R124-15823.16.0", "dut_pool": "chrome" }, "enabled": true, @@ -46,8 +46,8 @@ "CROS_BRYA_RELEASE_STABLE": { "skylab": { "cros_board": "brya", - "cros_chrome_version": "121.0.6167.159", - "cros_img": "brya-release/R121-15699.58.0", + "cros_chrome_version": "123.0.6312.112", + "cros_img": "brya-release/R123-15786.48.0", "dut_pool": "chrome" }, "enabled": true, @@ -65,8 +65,8 @@ "CROS_FIZZ_RELEASE_DEV": { "skylab": { "cros_board": "fizz", - "cros_chrome_version": "123.0.6276.0", - "cros_img": "fizz-release/R123-15770.0.0", + "cros_chrome_version": "125.0.6398.0", + "cros_img": "fizz-release/R125-15843.0.0", "dut_pool": "chrome" }, "enabled": true, @@ -75,8 +75,8 @@ "CROS_FIZZ_RELEASE_BETA": { "skylab": { "cros_board": "fizz", - "cros_chrome_version": "122.0.6261.21", - "cros_img": "fizz-release/R122-15753.13.0", + "cros_chrome_version": "124.0.6367.24", + "cros_img": "fizz-release/R124-15823.16.0", "dut_pool": "chrome" }, "enabled": true, @@ -85,8 +85,8 @@ "CROS_FIZZ_RELEASE_STABLE": { "skylab": { "cros_board": "fizz", - "cros_chrome_version": "121.0.6167.159", - "cros_img": "fizz-release/R121-15699.58.0", + "cros_chrome_version": "123.0.6312.112", + "cros_img": "fizz-release/R123-15786.48.0", "dut_pool": "chrome" }, "enabled": true, @@ -104,8 +104,8 @@ "CROS_GUYBRUSH_RELEASE_DEV": { "skylab": { "cros_board": "guybrush", - "cros_chrome_version": "123.0.6276.0", - "cros_img": "guybrush-release/R123-15770.0.0", + "cros_chrome_version": "125.0.6398.0", + "cros_img": "guybrush-release/R125-15843.0.0", "dut_pool": "chrome" }, "enabled": true, @@ -114,8 +114,8 @@ "CROS_GUYBRUSH_RELEASE_BETA": { "skylab": { "cros_board": "guybrush", - "cros_chrome_version": "122.0.6261.21", - "cros_img": "guybrush-release/R122-15753.13.0", + "cros_chrome_version": "124.0.6367.24", + "cros_img": "guybrush-release/R124-15823.16.0", "dut_pool": "chrome" }, "enabled": true, @@ -124,8 +124,8 @@ "CROS_GUYBRUSH_RELEASE_STABLE": { "skylab": { "cros_board": "guybrush", - "cros_chrome_version": "121.0.6167.159", - "cros_img": "guybrush-release/R121-15699.58.0", + "cros_chrome_version": "123.0.6312.112", + "cros_img": "guybrush-release/R123-15786.48.0", "dut_pool": "chrome" }, "enabled": true, @@ -143,8 +143,8 @@ "CROS_PUFF_RELEASE_DEV": { "skylab": { "cros_board": "puff", - "cros_chrome_version": "123.0.6276.0", - "cros_img": "puff-release/R123-15770.0.0", + "cros_chrome_version": "125.0.6398.0", + "cros_img": "puff-release/R125-15843.0.0", "dut_pool": "chrome" }, "enabled": true, @@ -153,8 +153,8 @@ "CROS_PUFF_RELEASE_BETA": { "skylab": { "cros_board": "puff", - "cros_chrome_version": "122.0.6261.21", - "cros_img": "puff-release/R122-15753.13.0", + "cros_chrome_version": "124.0.6367.24", + "cros_img": "puff-release/R124-15823.16.0", "dut_pool": "chrome" }, "enabled": true, @@ -163,8 +163,8 @@ "CROS_PUFF_RELEASE_STABLE": { "skylab": { "cros_board": "puff", - "cros_chrome_version": "121.0.6167.159", - "cros_img": "puff-release/R121-15699.58.0", + "cros_chrome_version": "123.0.6312.112", + "cros_img": "puff-release/R123-15786.48.0", "dut_pool": "chrome" }, "enabled": true, diff -Nru chromium-125.0.6422.60/infra/config/targets/lacros-version-skew-variants.json chromium-125.0.6422.76/infra/config/targets/lacros-version-skew-variants.json --- chromium-125.0.6422.60/infra/config/targets/lacros-version-skew-variants.json 2024-05-15 21:46:22.000000000 +0000 +++ chromium-125.0.6422.76/infra/config/targets/lacros-version-skew-variants.json 2024-05-21 22:43:03.000000000 +0000 @@ -1,64 +1,64 @@ { "LACROS_VERSION_SKEW_CANARY": { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "identifier": "Lacros version skew testing ash canary", "swarming": { "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ] } }, "LACROS_VERSION_SKEW_DEV": { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "identifier": "Lacros version skew testing ash dev", "swarming": { "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ] } }, "LACROS_VERSION_SKEW_BETA": { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "identifier": "Lacros version skew testing ash beta", "swarming": { "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ] } }, "LACROS_VERSION_SKEW_STABLE": { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "identifier": "Lacros version skew testing ash stable", "swarming": { "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ] } diff -Nru chromium-125.0.6422.60/media/capture/video/apple/video_capture_device_avfoundation.mm chromium-125.0.6422.76/media/capture/video/apple/video_capture_device_avfoundation.mm --- chromium-125.0.6422.60/media/capture/video/apple/video_capture_device_avfoundation.mm 2024-05-15 21:46:25.000000000 +0000 +++ chromium-125.0.6422.76/media/capture/video/apple/video_capture_device_avfoundation.mm 2024-05-21 22:43:04.000000000 +0000 @@ -45,7 +45,7 @@ BASE_FEATURE(kAVFoundationCaptureForwardSampleTimestamps, "AVFoundationCaptureForwardSampleTimestamps", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); namespace { diff -Nru chromium-125.0.6422.60/net/http/transport_security_state_static.pins chromium-125.0.6422.76/net/http/transport_security_state_static.pins --- chromium-125.0.6422.60/net/http/transport_security_state_static.pins 2024-05-15 21:46:32.000000000 +0000 +++ chromium-125.0.6422.76/net/http/transport_security_state_static.pins 2024-05-21 22:43:06.000000000 +0000 @@ -43,9 +43,9 @@ # hash function for preloaded entries again (we have already done so once). # -# Last updated: 2024-05-14 12:54 UTC +# Last updated: 2024-05-20 12:54 UTC PinsListTimestamp -1715691248 +1716209668 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= diff -Nru chromium-125.0.6422.60/net/http/transport_security_state_static_pins.json chromium-125.0.6422.76/net/http/transport_security_state_static_pins.json --- chromium-125.0.6422.60/net/http/transport_security_state_static_pins.json 2024-05-15 21:46:32.000000000 +0000 +++ chromium-125.0.6422.76/net/http/transport_security_state_static_pins.json 2024-05-21 22:43:06.000000000 +0000 @@ -31,7 +31,7 @@ // the 'static_spki_hashes' and 'bad_static_spki_hashes' fields in 'pinsets' // refer to, and the timestamp at which the pins list was last updated. // -// Last updated: 2024-05-14 12:54 UTC +// Last updated: 2024-05-20 12:54 UTC // { "pinsets": [ diff -Nru chromium-125.0.6422.60/testing/buildbot/chrome.json chromium-125.0.6422.76/testing/buildbot/chrome.json --- chromium-125.0.6422.60/testing/buildbot/chrome.json 2024-05-15 21:46:35.000000000 +0000 +++ chromium-125.0.6422.76/testing/buildbot/chrome.json 2024-05-21 22:43:07.000000000 +0000 @@ -2030,7 +2030,7 @@ { "autotest_name": "chromium", "cros_board": "brya", - "cros_img": "brya-release/R121-15699.54.0", + "cros_img": "brya-release/R124-15823.16.0", "dut_pool": "chrome", "name": "chromeos_integration_tests BRYA_RELEASE_BETA", "test": "chromeos_integration_tests", @@ -2040,7 +2040,7 @@ { "autotest_name": "chromium", "cros_board": "brya", - "cros_img": "brya-release/R123-15770.0.0", + "cros_img": "brya-release/R125-15843.0.0", "dut_pool": "chrome", "name": "chromeos_integration_tests BRYA_RELEASE_DEV", "test": "chromeos_integration_tests", @@ -2060,7 +2060,7 @@ { "autotest_name": "chromium", "cros_board": "brya", - "cros_img": "brya-release/R121-15699.58.0", + "cros_img": "brya-release/R123-15786.48.0", "dut_pool": "chrome", "name": "chromeos_integration_tests BRYA_RELEASE_STABLE", "test": "chromeos_integration_tests", @@ -2070,7 +2070,7 @@ { "autotest_name": "chromium", "cros_board": "fizz", - "cros_img": "fizz-release/R122-15753.13.0", + "cros_img": "fizz-release/R124-15823.16.0", "dut_pool": "chrome", "name": "chromeos_integration_tests FIZZ_RELEASE_BETA", "test": "chromeos_integration_tests", @@ -2080,7 +2080,7 @@ { "autotest_name": "chromium", "cros_board": "fizz", - "cros_img": "fizz-release/R123-15770.0.0", + "cros_img": "fizz-release/R125-15843.0.0", "dut_pool": "chrome", "name": "chromeos_integration_tests FIZZ_RELEASE_DEV", "test": "chromeos_integration_tests", @@ -2100,7 +2100,7 @@ { "autotest_name": "chromium", "cros_board": "fizz", - "cros_img": "fizz-release/R121-15699.58.0", + "cros_img": "fizz-release/R123-15786.48.0", "dut_pool": "chrome", "name": "chromeos_integration_tests FIZZ_RELEASE_STABLE", "test": "chromeos_integration_tests", @@ -2110,7 +2110,7 @@ { "autotest_name": "chromium", "cros_board": "guybrush", - "cros_img": "guybrush-release/R122-15753.13.0", + "cros_img": "guybrush-release/R124-15823.16.0", "dut_pool": "chrome", "name": "chromeos_integration_tests GUYBRUSH_RELEASE_BETA", "test": "chromeos_integration_tests", @@ -2120,7 +2120,7 @@ { "autotest_name": "chromium", "cros_board": "guybrush", - "cros_img": "guybrush-release/R123-15770.0.0", + "cros_img": "guybrush-release/R125-15843.0.0", "dut_pool": "chrome", "name": "chromeos_integration_tests GUYBRUSH_RELEASE_DEV", "test": "chromeos_integration_tests", @@ -2140,7 +2140,7 @@ { "autotest_name": "chromium", "cros_board": "guybrush", - "cros_img": "guybrush-release/R121-15699.58.0", + "cros_img": "guybrush-release/R123-15786.48.0", "dut_pool": "chrome", "name": "chromeos_integration_tests GUYBRUSH_RELEASE_STABLE", "test": "chromeos_integration_tests", @@ -2150,7 +2150,7 @@ { "autotest_name": "chromium", "cros_board": "puff", - "cros_img": "puff-release/R122-15753.13.0", + "cros_img": "puff-release/R124-15823.16.0", "dut_pool": "chrome", "name": "chromeos_integration_tests PUFF_RELEASE_BETA", "test": "chromeos_integration_tests", @@ -2160,7 +2160,7 @@ { "autotest_name": "chromium", "cros_board": "puff", - "cros_img": "puff-release/R123-15770.0.0", + "cros_img": "puff-release/R125-15843.0.0", "dut_pool": "chrome", "name": "chromeos_integration_tests PUFF_RELEASE_DEV", "test": "chromeos_integration_tests", @@ -2180,7 +2180,7 @@ { "autotest_name": "chromium", "cros_board": "puff", - "cros_img": "puff-release/R121-15699.58.0", + "cros_img": "puff-release/R123-15786.48.0", "dut_pool": "chrome", "name": "chromeos_integration_tests PUFF_RELEASE_STABLE", "test": "chromeos_integration_tests", @@ -2190,7 +2190,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "brya", - "cros_img": "brya-release/R121-15699.54.0", + "cros_img": "brya-release/R124-15823.16.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests BRYA_RELEASE_BETA", "resultdb": { @@ -2208,7 +2208,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "brya", - "cros_img": "brya-release/R123-15770.0.0", + "cros_img": "brya-release/R125-15843.0.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests BRYA_RELEASE_DEV", "resultdb": { @@ -2244,7 +2244,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "brya", - "cros_img": "brya-release/R121-15699.58.0", + "cros_img": "brya-release/R123-15786.48.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests BRYA_RELEASE_STABLE", "resultdb": { @@ -2262,7 +2262,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "fizz", - "cros_img": "fizz-release/R122-15753.13.0", + "cros_img": "fizz-release/R124-15823.16.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests FIZZ_RELEASE_BETA", "resultdb": { @@ -2280,7 +2280,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "fizz", - "cros_img": "fizz-release/R123-15770.0.0", + "cros_img": "fizz-release/R125-15843.0.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests FIZZ_RELEASE_DEV", "resultdb": { @@ -2316,7 +2316,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "fizz", - "cros_img": "fizz-release/R121-15699.58.0", + "cros_img": "fizz-release/R123-15786.48.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests FIZZ_RELEASE_STABLE", "resultdb": { @@ -2334,7 +2334,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "guybrush", - "cros_img": "guybrush-release/R122-15753.13.0", + "cros_img": "guybrush-release/R124-15823.16.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests GUYBRUSH_RELEASE_BETA", "resultdb": { @@ -2352,7 +2352,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "guybrush", - "cros_img": "guybrush-release/R123-15770.0.0", + "cros_img": "guybrush-release/R125-15843.0.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests GUYBRUSH_RELEASE_DEV", "resultdb": { @@ -2388,7 +2388,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "guybrush", - "cros_img": "guybrush-release/R121-15699.58.0", + "cros_img": "guybrush-release/R123-15786.48.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests GUYBRUSH_RELEASE_STABLE", "resultdb": { @@ -2406,7 +2406,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "puff", - "cros_img": "puff-release/R122-15753.13.0", + "cros_img": "puff-release/R124-15823.16.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests PUFF_RELEASE_BETA", "resultdb": { @@ -2424,7 +2424,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "puff", - "cros_img": "puff-release/R123-15770.0.0", + "cros_img": "puff-release/R125-15843.0.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests PUFF_RELEASE_DEV", "resultdb": { @@ -2460,7 +2460,7 @@ { "autotest_name": "tast.lacros-from-gcs", "cros_board": "puff", - "cros_img": "puff-release/R121-15699.58.0", + "cros_img": "puff-release/R123-15786.48.0", "dut_pool": "chrome", "name": "lacros_all_tast_tests PUFF_RELEASE_STABLE", "resultdb": { diff -Nru chromium-125.0.6422.60/testing/buildbot/chromium.android.json chromium-125.0.6422.76/testing/buildbot/chromium.android.json --- chromium-125.0.6422.60/testing/buildbot/chromium.android.json 2024-05-15 21:46:35.000000000 +0000 +++ chromium-125.0.6422.76/testing/buildbot/chromium.android.json 2024-05-21 22:43:07.000000000 +0000 @@ -588,6 +588,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "android_webview_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -606,6 +610,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "base_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -624,6 +632,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "build_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -642,6 +654,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "chrome_java_test_pagecontroller_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -660,6 +676,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "chrome_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -678,6 +698,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "components_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -696,6 +720,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "content_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -714,6 +742,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "device_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -732,6 +764,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "junit_unit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -750,6 +786,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "keyboard_accessory_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -768,6 +808,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "media_base_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -786,6 +830,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "module_installer_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -804,6 +852,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "net_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -822,6 +874,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "paint_preview_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -840,6 +896,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "password_check_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -858,6 +918,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "password_manager_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -876,6 +940,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "services_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -894,6 +962,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "touch_to_fill_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -912,6 +984,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "ui_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -930,6 +1006,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "webapk_client_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -948,6 +1028,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "webapk_shell_apk_h2o_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -966,6 +1050,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "webapk_shell_apk_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -1013,6 +1101,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "cast_base_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", @@ -1030,6 +1122,10 @@ "script": "//testing/merge_scripts/standard_isolated_script_merge.py" }, "name": "cast_shell_junit_tests", + "resultdb": { + "enable": true, + "has_native_resultdb_integration": true + }, "swarming": { "dimensions": { "cores": "8", diff -Nru chromium-125.0.6422.60/testing/buildbot/chromium.chromiumos.json chromium-125.0.6422.76/testing/buildbot/chromium.chromiumos.json --- chromium-125.0.6422.60/testing/buildbot/chromium.chromiumos.json 2024-05-15 21:46:35.000000000 +0000 +++ chromium-125.0.6422.76/testing/buildbot/chromium.chromiumos.json 2024-05-21 22:43:07.000000000 +0000 @@ -5454,9 +5454,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5466,8 +5466,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -5484,9 +5484,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5496,8 +5496,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -5514,9 +5514,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5526,8 +5526,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -5544,9 +5544,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5556,8 +5556,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { @@ -5610,9 +5610,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5622,8 +5622,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -5640,9 +5640,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5652,8 +5652,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -5670,9 +5670,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5682,8 +5682,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -5700,9 +5700,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5712,8 +5712,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { diff -Nru chromium-125.0.6422.60/testing/buildbot/chromium.coverage.json chromium-125.0.6422.76/testing/buildbot/chromium.coverage.json --- chromium-125.0.6422.60/testing/buildbot/chromium.coverage.json 2024-05-15 21:46:35.000000000 +0000 +++ chromium-125.0.6422.76/testing/buildbot/chromium.coverage.json 2024-05-21 22:43:07.000000000 +0000 @@ -19544,9 +19544,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19556,8 +19556,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -19573,9 +19573,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19585,8 +19585,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -19602,9 +19602,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19614,8 +19614,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -19631,9 +19631,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19643,8 +19643,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { @@ -19694,9 +19694,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19706,8 +19706,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -19723,9 +19723,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19735,8 +19735,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -19752,9 +19752,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19764,8 +19764,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -19781,9 +19781,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19793,8 +19793,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { diff -Nru chromium-125.0.6422.60/testing/buildbot/chromium.fyi.json chromium-125.0.6422.76/testing/buildbot/chromium.fyi.json --- chromium-125.0.6422.60/testing/buildbot/chromium.fyi.json 2024-05-15 21:46:36.000000000 +0000 +++ chromium-125.0.6422.76/testing/buildbot/chromium.fyi.json 2024-05-21 22:43:07.000000000 +0000 @@ -41709,9 +41709,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41720,8 +41720,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -41738,9 +41738,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41749,8 +41749,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -41767,9 +41767,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41778,8 +41778,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -41796,9 +41796,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41807,8 +41807,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { @@ -41859,9 +41859,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41870,8 +41870,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -41888,9 +41888,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41899,8 +41899,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -41917,9 +41917,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41928,8 +41928,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -41946,9 +41946,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41957,8 +41957,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { @@ -43207,9 +43207,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43219,8 +43219,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -43237,9 +43237,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43249,8 +43249,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -43267,9 +43267,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43279,8 +43279,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -43297,9 +43297,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43309,8 +43309,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { @@ -43363,9 +43363,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43375,8 +43375,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -43393,9 +43393,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43405,8 +43405,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -43423,9 +43423,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43435,8 +43435,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -43453,9 +43453,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43465,8 +43465,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { @@ -44689,9 +44689,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44700,8 +44700,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -44718,9 +44718,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44729,8 +44729,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -44747,9 +44747,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44758,8 +44758,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -44776,9 +44776,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44787,8 +44787,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { @@ -44839,9 +44839,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44850,8 +44850,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -44868,9 +44868,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44879,8 +44879,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -44897,9 +44897,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44908,8 +44908,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -44926,9 +44926,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44937,8 +44937,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { diff -Nru chromium-125.0.6422.60/testing/buildbot/chromium.memory.json chromium-125.0.6422.76/testing/buildbot/chromium.memory.json --- chromium-125.0.6422.60/testing/buildbot/chromium.memory.json 2024-05-15 21:46:36.000000000 +0000 +++ chromium-125.0.6422.76/testing/buildbot/chromium.memory.json 2024-05-21 22:43:07.000000000 +0000 @@ -15732,12 +15732,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -15747,8 +15747,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -15765,12 +15765,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -15780,8 +15780,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -15798,12 +15798,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -15813,8 +15813,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -15831,12 +15831,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -15846,8 +15846,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { @@ -15908,12 +15908,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 125.0.6422.31", + "description": "Run with ash-chrome version 125.0.6422.64", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -15923,8 +15923,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6422.31", - "revision": "version:125.0.6422.31" + "location": "lacros_version_skew_tests_v125.0.6422.64", + "revision": "version:125.0.6422.64" } ], "dimensions": { @@ -15941,12 +15941,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 126.0.6477.0", + "description": "Run with ash-chrome version 127.0.6489.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -15956,8 +15956,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6477.0", - "revision": "version:126.0.6477.0" + "location": "lacros_version_skew_tests_v127.0.6489.0", + "revision": "version:127.0.6489.0" } ], "dimensions": { @@ -15974,12 +15974,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 126.0.6455.0", + "description": "Run with ash-chrome version 126.0.6475.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -15989,8 +15989,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6455.0", - "revision": "version:126.0.6455.0" + "location": "lacros_version_skew_tests_v126.0.6475.0", + "revision": "version:126.0.6475.0" } ], "dimensions": { @@ -16007,12 +16007,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 124.0.6367.154", + "description": "Run with ash-chrome version 124.0.6367.219", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -16022,8 +16022,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v124.0.6367.154", - "revision": "version:124.0.6367.154" + "location": "lacros_version_skew_tests_v124.0.6367.219", + "revision": "version:124.0.6367.219" } ], "dimensions": { diff -Nru chromium-125.0.6422.60/testing/buildbot/variants.pyl chromium-125.0.6422.76/testing/buildbot/variants.pyl --- chromium-125.0.6422.60/testing/buildbot/variants.pyl 2024-05-15 21:46:37.000000000 +0000 +++ chromium-125.0.6422.76/testing/buildbot/variants.pyl 2024-05-21 22:43:08.000000000 +0000 @@ -15,7 +15,7 @@ 'identifier': 'BRYA_RELEASE_BETA', 'skylab': { 'cros_board': 'brya', - 'cros_img': 'brya-release/R121-15699.54.0', + 'cros_img': 'brya-release/R124-15823.16.0', 'dut_pool': 'chrome', }, }, @@ -23,7 +23,7 @@ 'identifier': 'BRYA_RELEASE_DEV', 'skylab': { 'cros_board': 'brya', - 'cros_img': 'brya-release/R123-15770.0.0', + 'cros_img': 'brya-release/R125-15843.0.0', 'dut_pool': 'chrome', }, }, @@ -39,7 +39,7 @@ 'identifier': 'BRYA_RELEASE_STABLE', 'skylab': { 'cros_board': 'brya', - 'cros_img': 'brya-release/R121-15699.58.0', + 'cros_img': 'brya-release/R123-15786.48.0', 'dut_pool': 'chrome', }, }, @@ -47,7 +47,7 @@ 'identifier': 'FIZZ_RELEASE_BETA', 'skylab': { 'cros_board': 'fizz', - 'cros_img': 'fizz-release/R122-15753.13.0', + 'cros_img': 'fizz-release/R124-15823.16.0', 'dut_pool': 'chrome', }, }, @@ -55,7 +55,7 @@ 'identifier': 'FIZZ_RELEASE_DEV', 'skylab': { 'cros_board': 'fizz', - 'cros_img': 'fizz-release/R123-15770.0.0', + 'cros_img': 'fizz-release/R125-15843.0.0', 'dut_pool': 'chrome', }, }, @@ -71,7 +71,7 @@ 'identifier': 'FIZZ_RELEASE_STABLE', 'skylab': { 'cros_board': 'fizz', - 'cros_img': 'fizz-release/R121-15699.58.0', + 'cros_img': 'fizz-release/R123-15786.48.0', 'dut_pool': 'chrome', }, }, @@ -79,7 +79,7 @@ 'identifier': 'GUYBRUSH_RELEASE_BETA', 'skylab': { 'cros_board': 'guybrush', - 'cros_img': 'guybrush-release/R122-15753.13.0', + 'cros_img': 'guybrush-release/R124-15823.16.0', 'dut_pool': 'chrome', }, }, @@ -87,7 +87,7 @@ 'identifier': 'GUYBRUSH_RELEASE_DEV', 'skylab': { 'cros_board': 'guybrush', - 'cros_img': 'guybrush-release/R123-15770.0.0', + 'cros_img': 'guybrush-release/R125-15843.0.0', 'dut_pool': 'chrome', }, }, @@ -103,7 +103,7 @@ 'identifier': 'GUYBRUSH_RELEASE_STABLE', 'skylab': { 'cros_board': 'guybrush', - 'cros_img': 'guybrush-release/R121-15699.58.0', + 'cros_img': 'guybrush-release/R123-15786.48.0', 'dut_pool': 'chrome', }, }, @@ -127,7 +127,7 @@ 'identifier': 'PUFF_RELEASE_BETA', 'skylab': { 'cros_board': 'puff', - 'cros_img': 'puff-release/R122-15753.13.0', + 'cros_img': 'puff-release/R124-15823.16.0', 'dut_pool': 'chrome', }, }, @@ -135,7 +135,7 @@ 'identifier': 'PUFF_RELEASE_DEV', 'skylab': { 'cros_board': 'puff', - 'cros_img': 'puff-release/R123-15770.0.0', + 'cros_img': 'puff-release/R125-15843.0.0', 'dut_pool': 'chrome', }, }, @@ -151,7 +151,7 @@ 'identifier': 'PUFF_RELEASE_STABLE', 'skylab': { 'cros_board': 'puff', - 'cros_img': 'puff-release/R121-15699.58.0', + 'cros_img': 'puff-release/R123-15786.48.0', 'dut_pool': 'chrome', }, }, @@ -251,64 +251,64 @@ }, 'LACROS_VERSION_SKEW_BETA': { 'identifier': 'Lacros version skew testing ash beta', - 'description': 'Run with ash-chrome version 125.0.6422.31', + 'description': 'Run with ash-chrome version 125.0.6422.64', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.31/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6422.64/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v125.0.6422.31', - 'revision': 'version:125.0.6422.31', + 'location': 'lacros_version_skew_tests_v125.0.6422.64', + 'revision': 'version:125.0.6422.64', }, ], }, }, 'LACROS_VERSION_SKEW_CANARY': { 'identifier': 'Lacros version skew testing ash canary', - 'description': 'Run with ash-chrome version 126.0.6477.0', + 'description': 'Run with ash-chrome version 127.0.6489.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6477.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v127.0.6489.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v126.0.6477.0', - 'revision': 'version:126.0.6477.0', + 'location': 'lacros_version_skew_tests_v127.0.6489.0', + 'revision': 'version:127.0.6489.0', }, ], }, }, 'LACROS_VERSION_SKEW_DEV': { 'identifier': 'Lacros version skew testing ash dev', - 'description': 'Run with ash-chrome version 126.0.6455.0', + 'description': 'Run with ash-chrome version 126.0.6475.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6455.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6475.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v126.0.6455.0', - 'revision': 'version:126.0.6455.0', + 'location': 'lacros_version_skew_tests_v126.0.6475.0', + 'revision': 'version:126.0.6475.0', }, ], }, }, 'LACROS_VERSION_SKEW_STABLE': { 'identifier': 'Lacros version skew testing ash stable', - 'description': 'Run with ash-chrome version 124.0.6367.154', + 'description': 'Run with ash-chrome version 124.0.6367.219', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.154/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.219/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v124.0.6367.154', - 'revision': 'version:124.0.6367.154', + 'location': 'lacros_version_skew_tests_v124.0.6367.219', + 'revision': 'version:124.0.6367.219', }, ], }, diff -Nru chromium-125.0.6422.60/testing/buildbot/waterfalls.pyl chromium-125.0.6422.76/testing/buildbot/waterfalls.pyl --- chromium-125.0.6422.60/testing/buildbot/waterfalls.pyl 2024-05-15 21:46:37.000000000 +0000 +++ chromium-125.0.6422.76/testing/buildbot/waterfalls.pyl 2024-05-21 22:43:08.000000000 +0000 @@ -452,6 +452,9 @@ 'test_suites': { 'isolated_scripts': 'chromium_junit_tests_scripts', }, + 'mixins': [ + 'has_native_resultdb_integration', + ], }, 'Android arm64 Builder (dbg)': { 'additional_compile_targets': [ @@ -482,6 +485,9 @@ 'test_suites': { 'isolated_scripts': 'cast_junit_tests', }, + 'mixins': [ + 'has_native_resultdb_integration', + ], }, 'Oreo Phone Tester': { 'os_type': 'android', diff -Nru chromium-125.0.6422.60/testing/variations/fieldtrial_testing_config.json chromium-125.0.6422.76/testing/variations/fieldtrial_testing_config.json --- chromium-125.0.6422.60/testing/variations/fieldtrial_testing_config.json 2024-05-15 21:46:37.000000000 +0000 +++ chromium-125.0.6422.76/testing/variations/fieldtrial_testing_config.json 2024-05-21 22:43:08.000000000 +0000 @@ -15,6 +15,21 @@ ] } ], + "AVFoundationCaptureForwardSampleTimestamps": [ + { + "platforms": [ + "mac" + ], + "experiments": [ + { + "name": "Disabled", + "disable_features": [ + "AVFoundationCaptureForwardSampleTimestamps" + ] + } + ] + } + ], "AblateSearchProviderWarmupRequests": [ { "platforms": [ diff -Nru chromium-125.0.6422.60/third_party/angle/scripts/code_generation_hashes/SPIR-V_helpers.json chromium-125.0.6422.76/third_party/angle/scripts/code_generation_hashes/SPIR-V_helpers.json --- chromium-125.0.6422.60/third_party/angle/scripts/code_generation_hashes/SPIR-V_helpers.json 2024-05-15 21:48:15.000000000 +0000 +++ chromium-125.0.6422.76/third_party/angle/scripts/code_generation_hashes/SPIR-V_helpers.json 2024-05-21 22:43:57.000000000 +0000 @@ -1,8 +1,8 @@ { "src/common/spirv/gen_spirv_builder_and_parser.py": - "e95670a30a4eda80a146b61c986fb03c", + "868a697edbc38c95e36be54cf5c71435", "src/common/spirv/spirv_instruction_builder_autogen.cpp": - "1b5f60a24d459e7a30c29cf7acfa2106", + "c149de371bcd571bd31cc8eb1e517910", "src/common/spirv/spirv_instruction_builder_autogen.h": "56b1309d8afabb2b64d7e16f0c4a4898", "src/common/spirv/spirv_instruction_parser_autogen.cpp": diff -Nru chromium-125.0.6422.60/third_party/angle/src/common/spirv/gen_spirv_builder_and_parser.py chromium-125.0.6422.76/third_party/angle/src/common/spirv/gen_spirv_builder_and_parser.py --- chromium-125.0.6422.60/third_party/angle/src/common/spirv/gen_spirv_builder_and_parser.py 2024-05-15 21:48:15.000000000 +0000 +++ chromium-125.0.6422.76/third_party/angle/src/common/spirv/gen_spirv_builder_and_parser.py 2024-05-21 22:43:57.000000000 +0000 @@ -93,6 +93,15 @@ ASSERT(length <= 0xFFFFu); ASSERT(op <= 0xFFFFu); + // It's easy for a complex shader to be crafted to hit the length limit, + // turn that into a crash instead of a security bug. Ideally, the compiler + // would gracefully fail compilation, so this is more of a safety net. + if (ANGLE_UNLIKELY(length > 0xFFFFu)) + { + ERR() << "Complex shader not representible in SPIR-V"; + ANGLE_CRASH(); + } + return static_cast(length) << 16 | op; } } // anonymous namespace diff -Nru chromium-125.0.6422.60/third_party/angle/src/common/spirv/spirv_instruction_builder_autogen.cpp chromium-125.0.6422.76/third_party/angle/src/common/spirv/spirv_instruction_builder_autogen.cpp --- chromium-125.0.6422.60/third_party/angle/src/common/spirv/spirv_instruction_builder_autogen.cpp 2024-05-15 21:48:15.000000000 +0000 +++ chromium-125.0.6422.76/third_party/angle/src/common/spirv/spirv_instruction_builder_autogen.cpp 2024-05-21 22:43:57.000000000 +0000 @@ -25,6 +25,15 @@ ASSERT(length <= 0xFFFFu); ASSERT(op <= 0xFFFFu); + // It's easy for a complex shader to be crafted to hit the length limit, + // turn that into a crash instead of a security bug. Ideally, the compiler + // would gracefully fail compilation, so this is more of a safety net. + if (ANGLE_UNLIKELY(length > 0xFFFFu)) + { + ERR() << "Complex shader not representible in SPIR-V"; + ANGLE_CRASH(); + } + return static_cast(length) << 16 | op; } } // anonymous namespace diff -Nru chromium-125.0.6422.60/third_party/blink/renderer/core/css/parser/css_selector_parser.cc chromium-125.0.6422.76/third_party/blink/renderer/core/css/parser/css_selector_parser.cc --- chromium-125.0.6422.60/third_party/blink/renderer/core/css/parser/css_selector_parser.cc 2024-05-15 21:46:40.000000000 +0000 +++ chromium-125.0.6422.76/third_party/blink/renderer/core/css/parser/css_selector_parser.cc 2024-05-21 22:43:09.000000000 +0000 @@ -946,7 +946,8 @@ return pseudo_id; } - auto tokens = CSSTokenizer(selector_string).TokenizeToEOF(); + CSSTokenizer tokenizer(selector_string); + auto tokens = tokenizer.TokenizeToEOF(); CSSParserTokenRange range(tokens); int ident_start = 0; if (range.Peek().GetType() == kColonToken) { diff -Nru chromium-125.0.6422.60/third_party/blink/renderer/core/dom/scripted_idle_task_controller.cc chromium-125.0.6422.76/third_party/blink/renderer/core/dom/scripted_idle_task_controller.cc --- chromium-125.0.6422.60/third_party/blink/renderer/core/dom/scripted_idle_task_controller.cc 2024-05-15 21:46:40.000000000 +0000 +++ chromium-125.0.6422.76/third_party/blink/renderer/core/dom/scripted_idle_task_controller.cc 2024-05-21 22:43:09.000000000 +0000 @@ -14,7 +14,6 @@ #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h" #include "third_party/blink/renderer/platform/scheduler/public/thread_scheduler.h" -#include "third_party/blink/renderer/platform/timer.h" #include "third_party/blink/renderer/platform/wtf/functional.h" #include "third_party/blink/renderer/platform/wtf/ref_counted.h" @@ -32,14 +31,9 @@ } virtual ~IdleRequestCallbackWrapper() = default; - void ScheduleTimeout(base::TimeDelta delay) { - timeout_.StartOneShot(delay, FROM_HERE); - } - static void IdleTaskFired( scoped_refptr callback_wrapper, base::TimeTicks deadline) { - callback_wrapper->timeout_.Stop(); if (ScriptedIdleTaskController* controller = callback_wrapper->Controller()) { // If we are going to yield immediately, reschedule the callback for @@ -55,12 +49,14 @@ callback_wrapper->Cancel(); } - void TimeoutFired(TimerBase*) { - if (ScriptedIdleTaskController* controller = Controller()) { - controller->CallbackFired(Id(), base::TimeTicks::Now(), + static void TimeoutFired( + scoped_refptr callback_wrapper) { + if (ScriptedIdleTaskController* controller = + callback_wrapper->Controller()) { + controller->CallbackFired(callback_wrapper->Id(), base::TimeTicks::Now(), IdleDeadline::CallbackType::kCalledByTimeout); } - Cancel(); + callback_wrapper->Cancel(); } void Cancel() { controller_ = nullptr; } @@ -71,16 +67,10 @@ private: IdleRequestCallbackWrapper(ScriptedIdleTaskController::CallbackId id, ScriptedIdleTaskController* controller) - : id_(id), - controller_(controller), - timeout_(controller->GetExecutionContext()->GetTaskRunner( - TaskType::kIdleTask), - this, - &IdleRequestCallbackWrapper::TimeoutFired) {} + : id_(id), controller_(controller) {} ScriptedIdleTaskController::CallbackId id_; WeakPersistent controller_; - TaskRunnerTimer timeout_; }; } // namespace internal @@ -141,7 +131,13 @@ WTF::BindOnce(&internal::IdleRequestCallbackWrapper::IdleTaskFired, callback_wrapper)); if (timeout_millis > 0) { - callback_wrapper->ScheduleTimeout(base::Milliseconds(timeout_millis)); + GetExecutionContext() + ->GetTaskRunner(TaskType::kIdleTask) + ->PostDelayedTask( + FROM_HERE, + WTF::BindOnce(&internal::IdleRequestCallbackWrapper::TimeoutFired, + callback_wrapper), + base::Milliseconds(timeout_millis)); } } @@ -245,7 +241,7 @@ ->PostTask( FROM_HERE, WTF::BindOnce(&internal::IdleRequestCallbackWrapper::TimeoutFired, - callback_wrapper, nullptr)); + callback_wrapper)); } pending_timeouts_.clear(); diff -Nru chromium-125.0.6422.60/third_party/blink/renderer/core/html/forms/html_option_element.cc chromium-125.0.6422.76/third_party/blink/renderer/core/html/forms/html_option_element.cc --- chromium-125.0.6422.60/third_party/blink/renderer/core/html/forms/html_option_element.cc 2024-05-15 21:46:41.000000000 +0000 +++ chromium-125.0.6422.76/third_party/blink/renderer/core/html/forms/html_option_element.cc 2024-05-21 22:43:09.000000000 +0000 @@ -403,6 +403,9 @@ } HTMLSelectListElement* HTMLOptionElement::OwnerSelectList() const { + if (!RuntimeEnabledFeatures::HTMLSelectListElementEnabled()) { + return nullptr; + } for (auto& ancestor : FlatTreeTraversal::AncestorsOf(*this)) { if (auto* selectlist = DynamicTo(ancestor)) { return selectlist; diff -Nru chromium-125.0.6422.60/third_party/blink/renderer/platform/runtime_enabled_features.json5 chromium-125.0.6422.76/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- chromium-125.0.6422.60/third_party/blink/renderer/platform/runtime_enabled_features.json5 2024-05-15 21:46:42.000000000 +0000 +++ chromium-125.0.6422.76/third_party/blink/renderer/platform/runtime_enabled_features.json5 2024-05-21 22:43:10.000000000 +0000 @@ -3787,7 +3787,7 @@ { // crbug.com/331680200 name: "TextAlignJustifyBidiIsolate", - status: "stable", + status: "test", }, { // crbug.com/331729346 diff -Nru chromium-125.0.6422.60/third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.cc chromium-125.0.6422.76/third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.cc --- chromium-125.0.6422.60/third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.cc 2024-05-15 21:46:42.000000000 +0000 +++ chromium-125.0.6422.76/third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.cc 2024-05-21 22:43:10.000000000 +0000 @@ -22,9 +22,13 @@ void BackForwardCacheDisablingFeatureTracker::SetDelegate( FrameOrWorkerScheduler::Delegate* delegate) { + // This function is only called when initializing. `delegate_` should be + // nullptr at first. DCHECK(!delegate_); - delegate_ = delegate; - // `delegate` might be nullptr on tests. + // `delegate` can be nullptr for tests. + if (delegate) { + delegate_ = (*delegate).AsWeakPtr(); + } } void BackForwardCacheDisablingFeatureTracker::Reset() { @@ -163,7 +167,13 @@ last_reported_sticky_ = sticky_features_and_js_locations_; FrameOrWorkerScheduler::Delegate::BlockingDetails details( non_sticky_features_and_js_locations_, sticky_features_and_js_locations_); - delegate_->UpdateBackForwardCacheDisablingFeatures(details); + + // Check if the delegate still exists. This check is necessary because + // `FrameOrWorkerScheduler::Delegate` might be destroyed and thus `delegate_` + // might be gone when `ReportFeaturesToDelegate() is executed. + if (delegate_) { + delegate_->UpdateBackForwardCacheDisablingFeatures(details); + } } } // namespace scheduler diff -Nru chromium-125.0.6422.60/third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.h chromium-125.0.6422.76/third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.h --- chromium-125.0.6422.60/third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.h 2024-05-15 21:46:42.000000000 +0000 +++ chromium-125.0.6422.76/third_party/blink/renderer/platform/scheduler/common/back_forward_cache_disabling_feature_tracker.h 2024-05-21 22:43:10.000000000 +0000 @@ -119,8 +119,7 @@ BFCacheBlockingFeatureAndLocations non_sticky_features_and_js_locations_; BFCacheBlockingFeatureAndLocations sticky_features_and_js_locations_; - raw_ptr delegate_ = - nullptr; + base::WeakPtr delegate_ = nullptr; raw_ptr scheduler_; base::WeakPtrFactory weak_factory_{ diff -Nru chromium-125.0.6422.60/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h chromium-125.0.6422.76/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h --- chromium-125.0.6422.60/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h 2024-05-15 21:46:42.000000000 +0000 +++ chromium-125.0.6422.76/third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h 2024-05-21 22:43:10.000000000 +0000 @@ -150,6 +150,11 @@ // changed when a blocking feature and its JS location are registered or // removed. virtual void UpdateBackForwardCacheDisablingFeatures(BlockingDetails) = 0; + + base::WeakPtr AsWeakPtr() { + return weak_ptr_factory_.GetWeakPtr(); + } + base::WeakPtrFactory weak_ptr_factory_{this}; }; virtual ~FrameOrWorkerScheduler(); diff -Nru chromium-125.0.6422.60/third_party/dawn/DEPS chromium-125.0.6422.76/third_party/dawn/DEPS --- chromium-125.0.6422.60/third_party/dawn/DEPS 2024-05-15 21:47:46.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/DEPS 2024-05-21 22:44:17.000000000 +0000 @@ -204,7 +204,7 @@ }, 'third_party/dxc': { - 'url': '{chromium_git}/external/github.com/microsoft/DirectXShaderCompiler@2a434fd0af6bbcaa6da648f51b696a33a6bcdd04', + 'url': '{chromium_git}/external/github.com/microsoft/DirectXShaderCompiler@7679d3a0a821bccbd9c7c33fe2d3aafb48e97af0', }, 'third_party/dxheaders': { diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/.github/CODEOWNERS chromium-125.0.6422.76/third_party/dawn/third_party/dxc/.github/CODEOWNERS --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/.github/CODEOWNERS 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/.github/CODEOWNERS 2024-05-21 22:47:18.000000000 +0000 @@ -0,0 +1 @@ +* @microsoft/hlsl-release diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/.github/ISSUE_TEMPLATE/support.md chromium-125.0.6422.76/third_party/dawn/third_party/dxc/.github/ISSUE_TEMPLATE/support.md --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/.github/ISSUE_TEMPLATE/support.md 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/.github/ISSUE_TEMPLATE/support.md 2024-05-21 22:47:18.000000000 +0000 @@ -0,0 +1,28 @@ +--- +name: User support +about: Ask the maintainers a question or for support. +title: '' +labels: ['user-support', 'needs-triage'] +assignees: '' + +--- + +**What is the issue you're encountering?** + + +**Steps to Reproduce (if applicable)** + + + +**Environment** +- DXC version +- Host Operating System + + diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/azure-pipelines.yml chromium-125.0.6422.76/third_party/dawn/third_party/dxc/azure-pipelines.yml --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/azure-pipelines.yml 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/azure-pipelines.yml 2024-05-21 22:47:18.000000000 +0000 @@ -53,7 +53,7 @@ configuration: Release CC: clang CXX: clang++ - CMAKE_OPTS: -DLLVM_ENABLE_WERROR=On -DLLVM_USE_SANITIZER=Address,Undefined -DLLVM_ENABLE_LIBCXX=On -DLLVM_USE_LINKER=lld + CMAKE_OPTS: -DLLVM_ENABLE_WERROR=On -DLLVM_USE_SANITIZER='Address;Undefined' -DLLVM_ENABLE_LIBCXX=On -DLLVM_USE_LINKER=lld CHECK_ALL_ENV: ASAN_OPTIONS=alloc_dealloc_mismatch=0 OS: Linux Linux_Clang_Debug: diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/cmake/modules/HandleLLVMOptions.cmake chromium-125.0.6422.76/third_party/dawn/third_party/dxc/cmake/modules/HandleLLVMOptions.cmake --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/cmake/modules/HandleLLVMOptions.cmake 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/cmake/modules/HandleLLVMOptions.cmake 2024-05-21 22:47:18.000000000 +0000 @@ -535,13 +535,13 @@ append("-fsanitize=address,undefined -fno-sanitize=vptr,function,alignment -fno-sanitize-recover=all" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) else() - message(WARNING "Unsupported value of LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER}") + message(FATAL_ERROR "Unsupported value of LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER}") endif() else() if (LLVM_USE_SANITIZER STREQUAL "Address") append("-fsanitize=address" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) else() - message(WARNING "Unsupported value of LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER}") + message(FATAL_ERROR "Unsupported value of LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER}") endif() endif() if (LLVM_USE_SANITIZE_COVERAGE) diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/docs/DXIL.rst chromium-125.0.6422.76/third_party/dawn/third_party/dxc/docs/DXIL.rst --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/docs/DXIL.rst 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/docs/DXIL.rst 2024-05-21 22:47:18.000000000 +0000 @@ -3249,7 +3249,7 @@ SM.OPCODE Opcode must be defined in target shader model SM.OPCODEININVALIDFUNCTION Invalid DXIL opcode usage like StorePatchConstant in patch constant function SM.OPERAND Operand must be defined in target shader model. -SM.OUTPUTCONTROLPOINTCOUNTRANGE output control point count must be [0..%0]. %1 specified. +SM.OUTPUTCONTROLPOINTCOUNTRANGE output control point count must be [%0..%1]. %2 specified. SM.OUTPUTCONTROLPOINTSTOTALSCALARS Total number of scalars across all HS output control points must not exceed . SM.PATCHCONSTANTONLYFORHSDS patch constant signature only valid in HS and DS. SM.PSCONSISTENTINTERP Interpolation mode for PS input position must be linear_noperspective_centroid or linear_noperspective_sample when outputting oDepthGE or oDepthLE and not running at sample frequency (which is forced by inputting SV_SampleIndex or declaring an input linear_sample or linear_noperspective_sample). @@ -3390,4 +3390,3 @@ * Consider moving some additional tables and lists into hctdb and cross-reference. * Complete the extended documentation for instructions. - diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilConstants.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilConstants.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilConstants.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilConstants.h 2024-05-21 22:47:18.000000000 +0000 @@ -112,6 +112,7 @@ const unsigned kMaxClipOrCullDistanceCount = 2 * 4; const unsigned kMaxGSOutputVertexCount = 1024; const unsigned kMaxGSInstanceCount = 32; +const unsigned kMinIAPatchControlPointCount = 1; const unsigned kMaxIAPatchControlPointCount = 32; const float kHSMaxTessFactorLowerBound = 1.0f; const float kHSMaxTessFactorUpperBound = 64.0f; diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilShaderModel.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilShaderModel.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilShaderModel.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/DXIL/DxilShaderModel.h 2024-05-21 22:47:18.000000000 +0000 @@ -90,6 +90,18 @@ static const char *GetNodeLaunchTypeName(DXIL::NodeLaunchType launchTy); static DXIL::NodeLaunchType NodeLaunchTypeFromName(llvm::StringRef name); + static bool HasVisibleGroup( + DXIL::ShaderKind SK, + DXIL::NodeLaunchType launchType = DXIL::NodeLaunchType::Invalid) { + // Note: Library case is permissive; enforced at entry point. + return SK == DXIL::ShaderKind::Compute || SK == DXIL::ShaderKind::Mesh || + SK == DXIL::ShaderKind::Amplification || + SK == DXIL::ShaderKind::Library || + (SK == DXIL::ShaderKind::Node && + (launchType == DXIL::NodeLaunchType::Broadcasting || + launchType == DXIL::NodeLaunchType::Coalescing)); + } + bool operator==(const ShaderModel &other) const; bool operator!=(const ShaderModel &other) const { return !(*this == other); } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/Support/SPIRVOptions.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/Support/SPIRVOptions.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/Support/SPIRVOptions.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/Support/SPIRVOptions.h 2024-05-21 22:47:18.000000000 +0000 @@ -92,6 +92,7 @@ std::vector bindRegister; std::vector bindGlobals; std::string entrypointName; + std::string floatDenormalMode; // OPT_denorm bool signaturePacking; ///< Whether signature packing is enabled or not diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/Test/HlslTestUtils.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/Test/HlslTestUtils.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/Test/HlslTestUtils.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/Test/HlslTestUtils.h 2024-05-21 22:47:18.000000000 +0000 @@ -77,7 +77,7 @@ const char *pTmpA = (a); \ const char *pTmpB = (b); \ if (0 != strcmp(pTmpA, pTmpB)) { \ - CA2W conv(pTmpB, CP_UTF8); \ + CA2W conv(pTmpB); \ WEX::Logging::Log::Comment(conv); \ const char *pA = pTmpA; \ const char *pB = pTmpB; \ diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/WinAdapter.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/WinAdapter.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/dxc/WinAdapter.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/dxc/WinAdapter.h 2024-05-21 22:47:18.000000000 +0000 @@ -126,7 +126,7 @@ // Used by HRESULT <--> WIN32 error code conversion #define SEVERITY_ERROR 1 #define FACILITY_WIN32 7 -#define HRESULT_CODE(hr) ((hr)&0xFFFF) +#define HRESULT_CODE(hr) ((hr) & 0xFFFF) #define MAKE_HRESULT(severity, facility, code) \ ((HRESULT)(((unsigned long)(severity) << 31) | \ ((unsigned long)(facility) << 16) | ((unsigned long)(code)))) @@ -238,7 +238,7 @@ #define HRESULT_FROM_WIN32(x) \ (HRESULT)(x) <= 0 ? (HRESULT)(x) \ - : (HRESULT)(((x)&0x0000FFFF) | (7 << 16) | 0x80000000) + : (HRESULT)(((x) & 0x0000FFFF) | (7 << 16) | 0x80000000) //===----------------------------------------------------------------------===// // @@ -912,32 +912,40 @@ #define CP_ACP 0 #define CP_UTF8 65001 // UTF-8 translation. -// Convert Windows codepage value to locale string -const char *CPToLocale(uint32_t CodePage); +// RAII style mechanism for setting/unsetting a locale for the specified Windows +// codepage +class ScopedLocale { + const char *m_prevLocale; + +public: + explicit ScopedLocale(uint32_t codePage) + : m_prevLocale(setlocale(LC_ALL, nullptr)) { + assert((codePage == CP_UTF8) && + "Support for Linux only handles UTF8 code pages"); + setlocale(LC_ALL, "en_US.UTF-8"); + } + ~ScopedLocale() { + if (m_prevLocale != nullptr) { + setlocale(LC_ALL, m_prevLocale); + } + } +}; // The t_nBufferLength parameter is part of the published interface, but not // used here. template class CW2AEX { public: - CW2AEX(LPCWSTR psz, UINT nCodePage = CP_UTF8) { - const char *locale = CPToLocale(nCodePage); - if (locale == nullptr) { - // Current Implementation only supports CP_UTF8, and CP_ACP - assert(false && "CW2AEX implementation for Linux only handles " - "UTF8 and ACP code pages"); - return; - } + CW2AEX(LPCWSTR psz) { + ScopedLocale locale(CP_UTF8); if (!psz) { m_psz = NULL; return; } - locale = setlocale(LC_ALL, locale); int len = (wcslen(psz) + 1) * 4; m_psz = new char[len]; std::wcstombs(m_psz, psz, len); - setlocale(LC_ALL, locale); } ~CW2AEX() { delete[] m_psz; } @@ -952,25 +960,17 @@ // used here. template class CA2WEX { public: - CA2WEX(LPCSTR psz, UINT nCodePage = CP_UTF8) { - const char *locale = CPToLocale(nCodePage); - if (locale == nullptr) { - // Current Implementation only supports CP_UTF8, and CP_ACP - assert(false && "CA2WEX implementation for Linux only handles " - "UTF8 and ACP code pages"); - return; - } + CA2WEX(LPCSTR psz) { + ScopedLocale locale(CP_UTF8); if (!psz) { m_psz = NULL; return; } - locale = setlocale(LC_ALL, locale); int len = strlen(psz) + 1; m_psz = new wchar_t[len]; std::mbstowcs(m_psz, psz, len); - setlocale(LC_ALL, locale); } ~CA2WEX() { delete[] m_psz; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/ADT/SparseBitVector.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/ADT/SparseBitVector.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/ADT/SparseBitVector.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/ADT/SparseBitVector.h 2024-05-21 22:47:18.000000000 +0000 @@ -248,7 +248,19 @@ : public ilist_default_traits > { typedef SparseBitVectorElement Element; - Element *createSentinel() const { return static_cast(&Sentinel); } +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + Element * + createSentinel() const { + return static_cast(&Sentinel); + } static void destroySentinel(Element *) {} Element *provideInitialHead() const { return createSentinel(); } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/Analysis/IVUsers.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/Analysis/IVUsers.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/Analysis/IVUsers.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/Analysis/IVUsers.h 2024-05-21 22:47:18.000000000 +0000 @@ -96,7 +96,17 @@ // the list... // The sentinel is relative to this instance, so we use a non-static // method. - IVStrideUse *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + IVStrideUse * + createSentinel() const { // since i(p)lists always publicly derive from the corresponding // traits, placing a data member in this class will augment i(p)list. // But since the NodeTy is expected to publicly derive from diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineBasicBlock.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineBasicBlock.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineBasicBlock.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineBasicBlock.h 2024-05-21 22:47:18.000000000 +0000 @@ -40,7 +40,17 @@ MachineBasicBlock* Parent; public: - MachineInstr *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + MachineInstr * + createSentinel() const { return static_cast(&Sentinel); } void destroySentinel(MachineInstr *) const {} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineFunction.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineFunction.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineFunction.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/CodeGen/MachineFunction.h 2024-05-21 22:47:18.000000000 +0000 @@ -48,7 +48,17 @@ : public ilist_default_traits { mutable ilist_half_node Sentinel; public: - MachineBasicBlock *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + MachineBasicBlock * + createSentinel() const { return static_cast(&Sentinel); } void destroySentinel(MachineBasicBlock *) const {} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/CodeGen/SelectionDAG.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/CodeGen/SelectionDAG.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/CodeGen/SelectionDAG.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/CodeGen/SelectionDAG.h 2024-05-21 22:47:18.000000000 +0000 @@ -84,7 +84,17 @@ private: mutable ilist_half_node Sentinel; public: - SDNode *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + SDNode * + createSentinel() const { return static_cast(&Sentinel); } static void destroySentinel(SDNode *) {} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/CodeGen/SlotIndexes.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/CodeGen/SlotIndexes.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/CodeGen/SlotIndexes.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/CodeGen/SlotIndexes.h 2024-05-21 22:47:18.000000000 +0000 @@ -74,7 +74,17 @@ private: mutable ilist_half_node Sentinel; public: - IndexListEntry *createSentinel() const { + // HLSL Change Starts + // Temporarily disable "downcast of address" UBSAN runtime error + // https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + IndexListEntry * + createSentinel() const { return static_cast(&Sentinel); } void destroySentinel(IndexListEntry *) const {} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/IR/BasicBlock.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/IR/BasicBlock.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/IR/BasicBlock.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/IR/BasicBlock.h 2024-05-21 22:47:19.000000000 +0000 @@ -341,8 +341,18 @@ // createSentinel is used to get hold of the node that marks the end of the // list... (same trick used here as in ilist_traits) -inline BasicBlock *ilist_traits::createSentinel() const { - return static_cast(&Sentinel); +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) +__attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) +// HLSL Change Ends +inline BasicBlock * +ilist_traits::createSentinel() const { + return static_cast(&Sentinel); } // Create wrappers for C Binding types (see CBindingWrapping.h). diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/IR/Function.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/IR/Function.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/IR/Function.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/IR/Function.h 2024-05-21 22:47:19.000000000 +0000 @@ -36,7 +36,17 @@ template<> struct ilist_traits : public SymbolTableListTraits { - Argument *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + Argument * + createSentinel() const { return static_cast(&Sentinel); } static void destroySentinel(Argument*) {} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/IR/Instruction.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/IR/Instruction.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/IR/Instruction.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/IR/Instruction.h 2024-05-21 22:47:19.000000000 +0000 @@ -515,7 +515,17 @@ Instruction *cloneImpl() const; }; -inline Instruction *ilist_traits::createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) +__attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) +// HLSL Change Ends +inline Instruction * +ilist_traits::createSentinel() const { // Since i(p)lists always publicly derive from their corresponding traits, // placing a data member in this class will augment the i(p)list. But since // the NodeTy is expected to be publicly derive from ilist_node, diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/IR/Module.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/IR/Module.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/IR/Module.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/IR/Module.h 2024-05-21 22:47:19.000000000 +0000 @@ -46,7 +46,17 @@ // createSentinel is used to get hold of the node that marks the end of the // list... (same trick used here as in ilist_traits) - Function *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + Function * + createSentinel() const { return static_cast(&Sentinel); } static void destroySentinel(Function*) {} @@ -62,7 +72,17 @@ template<> struct ilist_traits : public SymbolTableListTraits { // createSentinel is used to create a node that marks the end of the list. - GlobalVariable *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + GlobalVariable * + createSentinel() const { return static_cast(&Sentinel); } static void destroySentinel(GlobalVariable*) {} @@ -77,7 +97,17 @@ template<> struct ilist_traits : public SymbolTableListTraits { // createSentinel is used to create a node that marks the end of the list. - GlobalAlias *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + GlobalAlias * + createSentinel() const { return static_cast(&Sentinel); } static void destroySentinel(GlobalAlias*) {} @@ -93,7 +123,17 @@ : public ilist_default_traits { // createSentinel is used to get hold of a node that marks the end of // the list... - NamedMDNode *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + NamedMDNode * + createSentinel() const { return static_cast(&Sentinel); } static void destroySentinel(NamedMDNode*) {} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/Transforms/Utils/SymbolRewriter.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/Transforms/Utils/SymbolRewriter.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/include/llvm/Transforms/Utils/SymbolRewriter.h 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/include/llvm/Transforms/Utils/SymbolRewriter.h 2024-05-21 22:47:19.000000000 +0000 @@ -119,7 +119,17 @@ // createSentinel is used to get a reference to a node marking the end of // the list. Because the sentinel is relative to this instance, use a // non-static method. - SymbolRewriter::RewriteDescriptor *createSentinel() const { +// HLSL Change Starts +// Temporarily disable "downcast of address" UBSAN runtime error +// https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + SymbolRewriter::RewriteDescriptor * + createSentinel() const { // since i[p] lists always publicly derive from the corresponding // traits, placing a data member in this class will augment the // i[p]list. Since the NodeTy is expected to publicly derive from diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxcSupport/HLSLOptions.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxcSupport/HLSLOptions.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxcSupport/HLSLOptions.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxcSupport/HLSLOptions.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -845,10 +845,9 @@ opts.PrintAfter.insert(value); } - if (DXIL::CompareVersions(Major, Minor, 6, 8) < 0) { - opts.EnablePayloadQualifiers &= - !Args.hasFlag(OPT_disable_payload_qualifiers, OPT_INVALID, false); - } + opts.EnablePayloadQualifiers &= + !Args.hasFlag(OPT_disable_payload_qualifiers, OPT_INVALID, false); + if (opts.EnablePayloadQualifiers && DXIL::CompareVersions(Major, Minor, 6, 6) < 0) { errors << "Invalid target for payload access qualifiers. Only lib_6_6 and " @@ -1201,6 +1200,8 @@ hasUnsupportedSpirvOption(Args, errors)) return 1; + opts.SpirvOptions.floatDenormalMode = Args.getLastArgValue(OPT_denorm); + #else if (Args.hasFlag(OPT_spirv, OPT_INVALID, false) || Args.hasFlag(OPT_fvk_invert_y, OPT_INVALID, false) || diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxcSupport/Unicode.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxcSupport/Unicode.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxcSupport/Unicode.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxcSupport/Unicode.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -24,7 +24,7 @@ // MultiByteToWideChar which is a Windows-specific method. // This is a very simplistic implementation for non-Windows platforms. This // implementation completely ignores CodePage and dwFlags. -int MultiByteToWideChar(uint32_t CodePage, uint32_t /*dwFlags*/, +int MultiByteToWideChar(uint32_t /*CodePage*/, uint32_t /*dwFlags*/, const char *lpMultiByteStr, int cbMultiByte, wchar_t *lpWideCharStr, int cchWideChar) { @@ -52,8 +52,8 @@ } size_t rv; - const char *locale = CPToLocale(CodePage); - locale = setlocale(LC_ALL, locale); + const char *prevLocale = setlocale(LC_ALL, nullptr); + setlocale(LC_ALL, "en_US.UTF-8"); if (lpMultiByteStr[cbMultiByte - 1] != '\0') { char *srcStr = (char *)malloc((cbMultiByte + 1) * sizeof(char)); strncpy(srcStr, lpMultiByteStr, cbMultiByte); @@ -63,7 +63,10 @@ } else { rv = mbstowcs(lpWideCharStr, lpMultiByteStr, cchWideChar); } - setlocale(LC_ALL, locale); + + if (prevLocale) + setlocale(LC_ALL, prevLocale); + if (rv == (size_t)cbMultiByte) return rv; return rv + 1; // mbstowcs excludes the terminating character @@ -72,7 +75,7 @@ // WideCharToMultiByte is a Windows-specific method. // This is a very simplistic implementation for non-Windows platforms. This // implementation completely ignores CodePage and dwFlags. -int WideCharToMultiByte(uint32_t CodePage, uint32_t /*dwFlags*/, +int WideCharToMultiByte(uint32_t /*CodePage*/, uint32_t /*dwFlags*/, const wchar_t *lpWideCharStr, int cchWideChar, char *lpMultiByteStr, int cbMultiByte, const char * /*lpDefaultChar*/, @@ -105,8 +108,8 @@ } size_t rv; - const char *locale = CPToLocale(CodePage); - locale = setlocale(LC_ALL, locale); + const char *prevLocale = setlocale(LC_ALL, nullptr); + setlocale(LC_ALL, "en_US.UTF-8"); if (lpWideCharStr[cchWideChar - 1] != L'\0') { wchar_t *srcStr = (wchar_t *)malloc((cchWideChar + 1) * sizeof(wchar_t)); wcsncpy(srcStr, lpWideCharStr, cchWideChar); @@ -116,7 +119,10 @@ } else { rv = wcstombs(lpMultiByteStr, lpWideCharStr, cbMultiByte); } - setlocale(LC_ALL, locale); + + if (prevLocale) + setlocale(LC_ALL, prevLocale); + if (rv == (size_t)cchWideChar) return rv; return rv + 1; // mbstowcs excludes the terminating character diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxcSupport/WinAdapter.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxcSupport/WinAdapter.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxcSupport/WinAdapter.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxcSupport/WinAdapter.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -60,24 +60,6 @@ return blobIn[0] / sizeof(OLECHAR); } -//===---------------------- Char converstion ------------------------------===// - -const char *CPToLocale(uint32_t CodePage) { -#ifdef __APPLE__ - static const char *utf8 = "en_US.UTF-8"; - static const char *iso88591 = "en_US.ISO8859-1"; -#else - static const char *utf8 = "en_US.utf8"; - static const char *iso88591 = "en_US.iso88591"; -#endif - if (CodePage == CP_UTF8) { - return utf8; - } else if (CodePage == CP_ACP) { - // Experimentation suggests that ACP is expected to be ISO-8859-1 - return iso88591; - } - return nullptr; -} //===--------------------------- CHandle -------------------------------===// diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxcSupport/dxcapi.use.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxcSupport/dxcapi.use.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxcSupport/dxcapi.use.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxcSupport/dxcapi.use.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -58,7 +58,7 @@ void IFT_Data(HRESULT hr, LPCWSTR data) { if (SUCCEEDED(hr)) return; - CW2A pData(data, CP_UTF8); + CW2A pData(data); std::string errMsg; if (HRESULT_IS_WIN32ERR(hr)) { DWORD err = HRESULT_AS_WIN32ERR(hr); diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainer.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainer.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainer.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainer.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -98,7 +98,8 @@ } // Container size should match end of last part - if (nextPartBegin - pLinearContainer != pHeader->ContainerSizeInBytes) + if ((uint32_t)(nextPartBegin - pLinearContainer) != + pHeader->ContainerSizeInBytes) return false; return true; diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainerAssembler.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainerAssembler.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainerAssembler.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilContainer/DxilContainerAssembler.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -610,7 +610,7 @@ PSVComponentMask(), PSV.GetPCInputToOutputTable()); } - DXASSERT(pSrc - pInputData == InputSizeInUInts, + DXASSERT((unsigned)(pSrc - pInputData) == InputSizeInUInts, "otherwise, different amout of data written than expected."); } @@ -667,7 +667,7 @@ pOutputData, PCScalars, OutputScalars[0], PSVComponentMask(), PSV.GetPCInputToOutputTable()); } - DXASSERT(pOutputData - pStartOutputData == OutputSizeInUInts, + DXASSERT((unsigned)(pOutputData - pStartOutputData) == OutputSizeInUInts, "otherwise, OutputSizeInUInts didn't match size written."); return pOutputData - pStartOutputData; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilDia/DxcPixCompilationInfo.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilDia/DxcPixCompilationInfo.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilDia/DxcPixCompilationInfo.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilDia/DxcPixCompilationInfo.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -105,7 +105,7 @@ llvm::dyn_cast(mdOperand)->getString(); std::string StringWithTerminator(MetadataAsStringRef.begin(), MetadataAsStringRef.size()); - CA2W cv(StringWithTerminator.c_str(), CP_UTF8); + CA2W cv(StringWithTerminator.c_str()); CComBSTR BStr; BStr.Append(cv); BStr.Append(L"\0", 1); @@ -168,7 +168,7 @@ } std::string str(strRef.begin(), strRef.size()); - CA2W cv(str.c_str(), CP_UTF8); + CA2W cv(str.c_str()); pBSTR.Append(cv); pBSTR.Append(L" ", 1); } @@ -201,7 +201,7 @@ str = name + "=" + definition; } - CA2W cv(str.c_str(), CP_UTF8); + CA2W cv(str.c_str()); pBSTR.Append(L"-D", 2); pBSTR.Append(cv); pBSTR.Append(L" ", 1); @@ -218,7 +218,7 @@ ->getString(); std::string str(strRef.begin(), strRef.size()); // To make sure str is null terminated - CA2W cv(str.c_str(), CP_UTF8); + CA2W cv(str.c_str()); CComBSTR pBSTR; pBSTR.Append(cv); *pEntryPointFile = pBSTR.Detach(); @@ -227,7 +227,7 @@ STDMETHODIMP CompilationInfo::GetHlslTarget(BSTR *pHlslTarget) { - CA2W cv(m_pSession->DxilModuleRef().GetShaderModel()->GetName(), CP_UTF8); + CA2W cv(m_pSession->DxilModuleRef().GetShaderModel()->GetName()); CComBSTR pBSTR; pBSTR.Append(cv); *pHlslTarget = pBSTR.Detach(); @@ -237,7 +237,7 @@ STDMETHODIMP CompilationInfo::GetEntryPoint(BSTR *pEntryPoint) { auto name = m_pSession->DxilModuleRef().GetEntryFunctionName(); - CA2W cv(name.c_str(), CP_UTF8); + CA2W cv(name.c_str()); CComBSTR pBSTR; pBSTR.Append(cv); *pEntryPoint = pBSTR.Detach(); diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSession.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSession.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSession.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSession.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -20,7 +20,7 @@ #include "llvm/IR/Metadata.h" #include "llvm/IR/Module.h" -#include "..\DxilPIXPasses\PixPassHelpers.h" +#include "../DxilPIXPasses/PixPassHelpers.h" #include "DxilDia.h" #include "DxilDiaEnumTables.h" #include "DxilDiaTable.h" @@ -351,7 +351,7 @@ /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult) { if (Contents() != nullptr) { - CW2A pUtf8FileName(srcFile, CP_UTF8); + CW2A pUtf8FileName(srcFile); DxcThreadMalloc TM(m_pMalloc); IDiaTable *pTable; IFT(Table::Create(this, Table::Kind::InjectedSource, &pTable)); diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSymbolManager.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSymbolManager.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSymbolManager.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/DxilDia/DxilDiaSymbolManager.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -296,7 +296,7 @@ IFR(FunctionSymbol::Create(pMalloc, pSession, m_ID, m_Node, m_TypeID, m_Node->getType(), ppRet)); (*ppRet)->SetLexicalParent(m_ParentID); - (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str(), CP_UTF8)); + (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str())); return S_OK; } @@ -398,7 +398,7 @@ IFR(TypedefTypeSymbol::Create(pMalloc, pSession, m_ParentID, m_ID, m_Node, m_BaseTypeID, ppRet)); (*ppRet)->SetLexicalParent(m_ParentID); - (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str(), CP_UTF8)); + (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str())); return S_OK; } @@ -440,7 +440,7 @@ IFR(VectorTypeSymbol::Create(pMalloc, pSession, m_ParentID, m_ID, m_Node, m_ElemTyID, m_NumElts, ppRet)); (*ppRet)->SetLexicalParent(m_ParentID); - (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str(), CP_UTF8)); + (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str())); return S_OK; } @@ -506,7 +506,7 @@ IFR(GlobalVariableSymbol::Create(pMalloc, pSession, m_ID, m_GV, m_TypeID, m_Type, ppRet)); (*ppRet)->SetLexicalParent(m_ParentID); - (*ppRet)->SetName(CA2W(m_GV->getName().str().c_str(), CP_UTF8)); + (*ppRet)->SetName(CA2W(m_GV->getName().str().c_str())); (*ppRet)->SetIsHLSLData(true); return S_OK; } @@ -586,7 +586,7 @@ m_Type, m_VI->GetOffsetInUDT(), m_VI->GetDxilRegister(), ppRet)); (*ppRet)->SetLexicalParent(m_ParentID); - (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str(), CP_UTF8)); + (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str())); (*ppRet)->SetDataKind(m_Node->getTag() == llvm::dwarf::DW_TAG_arg_variable ? DataIsParam : DataIsLocal); @@ -628,7 +628,7 @@ IFR(UDTFieldSymbol::Create(pMalloc, pSession, m_ID, m_Node, m_TypeID, m_Type, ppRet)); (*ppRet)->SetLexicalParent(m_ParentID); - (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str(), CP_UTF8)); + (*ppRet)->SetName(CA2W(m_Node->getName().str().c_str())); (*ppRet)->SetDataKind(m_Node->isStaticMember() ? DataIsStaticLocal : DataIsMember); return S_OK; @@ -946,7 +946,7 @@ } std::string str(strRef.begin(), strRef.size()); - CA2W cv(str.c_str(), CP_UTF8); + CA2W cv(str.c_str()); pBSTR.Append(cv); pBSTR.Append(L"\0", 1); } @@ -989,7 +989,7 @@ it != definesNode->op_end(); ++it) { llvm::StringRef strRef = llvm::dyn_cast(*it)->getString(); std::string str(strRef.begin(), strRef.size()); - CA2W cv(str.c_str(), CP_UTF8); + CA2W cv(str.c_str()); pBSTR.Append(cv); pBSTR.Append(L"\0", 1); } @@ -1068,7 +1068,7 @@ DXASSERT(!this->HasName(), "Setting type name multiple times."); std::string Name; IFR(m_lazySymbolName(m_pSession, &Name)); - this->SetName(CA2W(Name.c_str(), CP_UTF8)); + this->SetName(CA2W(Name.c_str())); m_lazySymbolName = nullptr; } return Symbol::get_name(pRetVal); @@ -1579,7 +1579,7 @@ if (!name) { OS << "???"; } else { - OS << CW2A((BSTR)name, CP_UTF8); + OS << CW2A((BSTR)name); } } if (first) { @@ -1678,7 +1678,7 @@ if (!name) { OS << "???"; } else { - OS << CW2A((BSTR)name, CP_UTF8); + OS << CW2A((BSTR)name); } OS << "["; @@ -1910,7 +1910,7 @@ if (!name) { OS << "???"; } else { - OS << CW2A((BSTR)name, CP_UTF8); + OS << CW2A((BSTR)name); } OS << Qualifier; return S_OK; diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/HLSL/DxcOptimizer.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/HLSL/DxcOptimizer.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/HLSL/DxcOptimizer.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/HLSL/DxcOptimizer.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -462,7 +462,7 @@ continue; } - CW2A optName(ppOptions[i], CP_UTF8); + CW2A optName(ppOptions[i]); // The option syntax is const char ArgDelim = ','; // '-' OPTION_NAME (',' ARG_NAME ('=' ARG_VALUE)?)* diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/HLSL/DxilValidation.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/HLSL/DxilValidation.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/HLSL/DxilValidation.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/HLSL/DxilValidation.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -5950,10 +5950,12 @@ } unsigned outputControlPointCount = HS.outputControlPoints; - if (outputControlPointCount > DXIL::kMaxIAPatchControlPointCount) { + if (outputControlPointCount < DXIL::kMinIAPatchControlPointCount || + outputControlPointCount > DXIL::kMaxIAPatchControlPointCount) { ValCtx.EmitFnFormatError( F, ValidationRule::SmOutputControlPointCountRange, - {std::to_string(DXIL::kMaxIAPatchControlPointCount), + {std::to_string(DXIL::kMinIAPatchControlPointCount), + std::to_string(DXIL::kMaxIAPatchControlPointCount), std::to_string(outputControlPointCount)}); } if (domain == DXIL::TessellatorDomain::Undefined) { diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/HLSL/HLMatrixLowerPass.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -422,9 +422,8 @@ return ConstantAggregateZero::get(LoweredTy); // Lower undef mat as undef vec - if (isa(Val)) { - return UndefValue::get(LoweredTy); - } + if (isa(Val)) + return UndefValue::get(LoweredTy); // Return a mat-to-vec translation stub FunctionType *TranslationStubTy = diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/Support/MSFileSystemBasic.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/Support/MSFileSystemBasic.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/Support/MSFileSystemBasic.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/Support/MSFileSystemBasic.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -16,8 +16,8 @@ #include "dxc/Support/WinIncludes.h" -#include #include +#include #include #include #include diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp 2024-05-15 21:48:13.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -3716,7 +3716,9 @@ if (ReplaceUseOfZeroInit(I, UI, DT, Reachable)) continue; } else if (LoadInst *LI = dyn_cast(UI)) { - LI->replaceAllUsesWith(ConstantAggregateZero::get(LI->getType())); + // Replace uses of the load with a constant zero. + Constant *replacement = Constant::getNullValue(LI->getType()); + LI->replaceAllUsesWith(replacement); LI->eraseFromParent(); continue; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/projects/dxilconv/unittests/DxilConvTests.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/projects/dxilconv/unittests/DxilConvTests.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/projects/dxilconv/unittests/DxilConvTests.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/projects/dxilconv/unittests/DxilConvTests.cpp 2024-05-21 22:47:19.000000000 +0000 @@ -74,7 +74,7 @@ FileRunTestResult t = FileRunTestResult::RunFromFileCommands( path, m_dllSupport, &m_TestToolPaths); if (t.RunResult != 0) { - CA2W commentWide(t.ErrorMessage.c_str(), CP_UTF8); + CA2W commentWide(t.ErrorMessage.c_str()); WEX::Logging::Log::Comment(commentWide); WEX::Logging::Log::Error(L"Run result is not zero"); } @@ -159,7 +159,7 @@ if (::PathFileExistsA(loc.c_str())) { m_TestToolPaths.emplace(refName, loc); } else { - CA2W locW(loc.c_str(), CP_UTF8); + CA2W locW(loc.c_str()); hlsl_test::LogErrorFmt(L"Cannot find %s.", locW.m_psz); return false; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticGroups.td chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticGroups.td --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticGroups.td 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticGroups.td 2024-05-21 22:47:21.000000000 +0000 @@ -802,4 +802,5 @@ def HLSLStructurizeExitsLifetimeMarkersConflict: DiagGroup<"structurize-exits-lifetime-markers-conflict">; def HLSLParameterUsage : DiagGroup<"parameter-usage">; def HLSLAvailability: DiagGroup<"hlsl-availability">; +def HLSLBarrier : DiagGroup<"hlsl-barrier">; // HLSL Change Ends diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td 2024-05-21 22:47:21.000000000 +0000 @@ -20,6 +20,9 @@ def note_defined_here : Note<"%0 defined here">; def note_field_declared_here : Note<"%0 field declared here">; +// HLSL Change: Note for HLSL entry function location +def note_hlsl_entry_defined_here : Note<"entry function defined here">; + // For loop analysis def warn_variables_not_in_loop_body : Warning< "variable%select{s| %1|s %1 and %2|s %1, %2, and %3|s %1, %2, %3, and %4}0 " @@ -7628,7 +7631,7 @@ def err_payload_fields_is_payload_and_overqualified : Error< "payload field '%0' is a payload struct. Payload access qualifiers are not allowed on payload types.">; def warn_hlsl_payload_qualifer_dropped : Warning< - "payload access qualifieres are only supported for target lib_6_6 and beyond. You can opt-in for lib_6_6 with the -enable-payload-qualifiers flag. Qualifiers will be dropped.">, InGroup; + "payload access qualifiers ignored. These are only supported for lib_6_7+ targets and lib_6_6 with with the -enable-payload-qualifiers flag.">, InGroup; def err_hlsl_unsupported_builtin_op: Error< "operator cannot be used with built-in type %0">; def err_hlsl_unsupported_char_literal : Error< @@ -7712,6 +7715,9 @@ "invalid register specification, expected %0 binding">; def err_hlsl_incorrect_bind_semantic: Error< // Is an error in fxc in some cases, but is sometimes ignored "invalid register specification, expected %0 binding">; +def warn_hlsl_semantic_attribute_position_misuse_hint: Warning< + "'%0' is a user-defined semantic; did you mean 'SV_Position'?">, + InGroup>; def warn_hlsl_unary_negate_unsigned : Warning< "unary negate of unsigned value is still unsigned">, InGroup, DefaultWarn; @@ -7732,6 +7738,8 @@ InGroup, DefaultWarn; def err_hlsl_nointerpolation_and_linear : Error< "nointerpolation cannot be used with any other interpolation mode specifier">; +def err_hlsl_parameter_requires_attribute : Error< + "parameter %0 of %1 must have a '%2' attribute">; def warn_hlsl_duplicate_specifier : Warning< "duplicate HLSL specifier %0">, InGroup, DefaultWarn; @@ -7834,8 +7842,8 @@ "patch constant function '%0' must be defined">; def err_hlsl_patch_reachability_not_allowed : Error< "%select{patch constant|entry}0 function '%1' should not be reachable from %select{patch constant|entry}2 function '%3'">; -def err_hlsl_patch_input_size_mismatch : Error< - "Patch constant function's input patch input should have %0 elements, but has %1.">; +def err_hlsl_patch_size_mismatch : Error< + "Patch constant function's %0 patch input should have %1 elements, but has %2.">; def warn_hlsl_structurize_exits_lifetime_markers_conflict : Warning < "structurize-returns skipped function '%0' due to incompatibility with lifetime markers. Use -disable-lifetime-markers to enable structurize-exits on this function.">, InGroup< HLSLStructurizeExitsLifetimeMarkersConflict >; @@ -7915,6 +7923,29 @@ def err_hlsl_outputpatch_size: Error< "OutputPatch element count must be greater than 0">; def note_hlsl_node_array : Note<"'%0' cannot be used as an array; did you mean '%0Array'?">; +def err_hlsl_controlpoints_size: Error< + "number of control points %0 is outside the valid range of [1..32]">; +def err_hlsl_barrier_invalid_memory_flags: Error< + "invalid MemoryTypeFlags for Barrier operation; expected 0, ALL_MEMORY, or some combination of " + "UAV_MEMORY, GROUP_SHARED_MEMORY, NODE_INPUT_MEMORY, NODE_OUTPUT_MEMORY flags">; +def err_hlsl_barrier_invalid_semantic_flags: Error< + "invalid SemanticFlags for Barrier operation; expected 0 or some combination of " + "GROUP_SYNC, GROUP_SCOPE, DEVICE_SCOPE flags">; +def warn_hlsl_barrier_group_memory_requires_group: Warning< + "GROUP_SHARED_MEMORY specified for Barrier operation when context has no visible group">, + InGroup, DefaultError; +def warn_hlsl_barrier_node_memory_requires_node: Warning< + "NODE_INPUT_MEMORY or NODE_OUTPUT_MEMORY may only be specified for Barrier operation in a node shader">, + InGroup, DefaultError; +def warn_hlsl_barrier_group_semantic_requires_group: Warning< + "GROUP_SYNC or GROUP_SCOPE specified for Barrier operation when context has no visible group">, + InGroup, DefaultError; +def warn_hlsl_barrier_no_mem_with_required_group_scope: Warning< + "GROUP_SCOPE specified for Barrier operation without applicable memory">, + InGroup, DefaultError; +def warn_hlsl_barrier_no_mem_with_required_device_scope: Warning< + "DEVICE_SCOPE specified for Barrier operation without applicable memory">, + InGroup, DefaultError; // HLSL Change Ends // SPIRV Change Starts diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/FeatureManager.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/FeatureManager.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/FeatureManager.h 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/FeatureManager.h 2024-05-21 22:47:21.000000000 +0000 @@ -60,6 +60,7 @@ NV_compute_shader_derivatives, KHR_fragment_shader_barycentric, KHR_maximal_reconvergence, + KHR_float_controls, Unknown, }; diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/SpirvBuilder.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/SpirvBuilder.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/SpirvBuilder.h 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/SPIRV/SpirvBuilder.h 2024-05-21 22:47:21.000000000 +0000 @@ -443,10 +443,11 @@ /// \brief Creates an OpBitFieldInsert SPIR-V instruction for the given /// arguments. - SpirvBitFieldInsert * - createBitFieldInsert(QualType resultType, SpirvInstruction *base, - SpirvInstruction *insert, SpirvInstruction *offset, - SpirvInstruction *count, SourceLocation); + SpirvInstruction *createBitFieldInsert(QualType resultType, + SpirvInstruction *base, + SpirvInstruction *insert, + unsigned bitOffset, unsigned bitCount, + SourceLocation, SourceRange); /// \brief Creates an OpBitFieldUExtract or OpBitFieldSExtract SPIR-V /// instruction for the given arguments. @@ -831,6 +832,14 @@ const SpirvType *spvType, SpirvInstruction *var); + /// \brief Emulates OpBitFieldInsert SPIR-V instruction for the given + /// arguments. + SpirvInstruction * + createEmulatedBitFieldInsert(QualType resultType, uint32_t baseTypeBitwidth, + SpirvInstruction *base, SpirvInstruction *insert, + unsigned bitOffset, unsigned bitCount, + SourceLocation, SourceRange); + private: ASTContext &astContext; SpirvContext &context; ///< From which we allocate various SPIR-V object diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/Sema/Sema.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/Sema/Sema.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/Sema/Sema.h 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/Sema/Sema.h 2024-05-21 22:47:21.000000000 +0000 @@ -3807,14 +3807,13 @@ void DiagnoseGloballyCoherentMismatch(const Expr *SrcExpr, QualType TargetType, SourceLocation Loc); - bool DiagnoseHLSLMethodCall(const CXXMethodDecl *MD, SourceLocation Loc); - void DiagnoseSVForLaunchType(const FunctionDecl *FD, - hlsl::DXIL::NodeLaunchType LaunchTy); - void DiagnoseReachableHLSLMethodCall(const CXXMethodDecl *MD, - SourceLocation Loc, - const hlsl::ShaderModel *SM, - hlsl::DXIL::ShaderKind EntrySK, - const FunctionDecl *EntryDecl); + void CheckHLSLFunctionCall(FunctionDecl *FDecl, CallExpr *TheCall, + const FunctionProtoType *Proto); + void DiagnoseReachableHLSLCall(CallExpr *CE, const hlsl::ShaderModel *SM, + hlsl::DXIL::ShaderKind EntrySK, + hlsl::DXIL::NodeLaunchType NodeLaunchTy, + const FunctionDecl *EntryDecl, + bool locallyVisited); // HLSL Change Ends bool CheckUnaryExprOrTypeTraitOperand(Expr *E, UnaryExprOrTypeTrait ExprKind); @@ -8828,6 +8827,8 @@ bool AllowOnePastEnd=true, bool IndexNegated=false); // HLSL Change Starts - checking array subscript access to vector or matrix member void CheckHLSLArrayAccess(const Expr *expr); + bool CheckHLSLIntrinsicCall(FunctionDecl *FDecl, CallExpr *TheCall); + bool CheckHLSLFunctionCall(FunctionDecl *FDecl, CallExpr *TheCall); // HLSL Change ends void CheckArrayAccess(const Expr *E); // Used to grab the relevant information from a FormatAttr and a diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h 2024-05-21 22:47:21.000000000 +0000 @@ -317,7 +317,17 @@ namespace llvm { template<> struct ilist_traits : public ilist_default_traits { - clang::ento::BugReport *createSentinel() const { + // HLSL Change Starts + // Temporarily disable "downcast of address" UBSAN runtime error + // https://github.com/microsoft/DirectXShaderCompiler/issues/6446 +#ifdef __has_feature +#if __has_feature(undefined_behavior_sanitizer) + __attribute__((no_sanitize("undefined"))) +#endif // __has_feature(address_sanitizer) +#endif // defined(__has_feature) + // HLSL Change Ends + clang::ento::BugReport * + createSentinel() const { return static_cast(&Sentinel); } void destroySentinel(clang::ento::BugReport *) const {} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExpr.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExpr.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExpr.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExpr.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -1137,6 +1137,12 @@ return MDHelper.createRange(Min, End); } +static bool ShouldEmitRangeMD(llvm::Value *Value, QualType Ty) { + if (hasBooleanRepresentation(Ty)) + return cast(Value->getType())->getBitWidth() != 1; + return true; +} + llvm::Value *CodeGenFunction::EmitLoadOfScalar(llvm::Value *Addr, bool Volatile, unsigned Alignment, QualType Ty, SourceLocation Loc, @@ -1236,7 +1242,8 @@ EmitCheck(std::make_pair(Check, Kind), "load_invalid_value", StaticArgs, EmitCheckValue(Load)); } - } else if (CGM.getCodeGenOpts().OptimizationLevel > 0) + } else if (CGM.getCodeGenOpts().OptimizationLevel > 0 && + ShouldEmitRangeMD(Load, Ty)) if (llvm::MDNode *RangeInfo = getRangeForLoadFromType(Ty)) Load->setMetadata(llvm::LLVMContext::MD_range, RangeInfo); diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExprCXX.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExprCXX.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExprCXX.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGExprCXX.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -235,12 +235,17 @@ llvm::Constant *zero = Builder.getInt32(0); llvm::Value *TmpThis = CreateTempAlloca(Ty); + QualType ElTy = hlsl::GetElementTypeOrType(Base->getType()); + bool IsBool = ElTy->isSpecificBuiltinType(BuiltinType::Bool); for (unsigned i = 0; i < Ty->getVectorNumElements(); i++) { llvm::Value *EltIdx = Elts->getAggregateElement(i); llvm::Value *EltGEP = Builder.CreateGEP(This, {zero, EltIdx}); llvm::Value *TmpEltGEP = Builder.CreateGEP(TmpThis, {zero, Builder.getInt32(i)}); llvm::Value *Elt = Builder.CreateLoad(EltGEP); + if (IsBool) + Elt = Builder.CreateTrunc( + Elt, llvm::Type::getInt1Ty(getLLVMContext())); Builder.CreateStore(Elt, TmpEltGEP); } This = TmpThis; diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGHLSLMSFinishCodeGen.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGHLSLMSFinishCodeGen.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGHLSLMSFinishCodeGen.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/CodeGen/CGHLSLMSFinishCodeGen.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -1475,7 +1475,6 @@ HLM.HasDxilFunctionProps(EntryFunc.Func), " else AddHLSLFunctionInfo did not save the dxil function props for the " "HS entry."); - DxilFunctionProps *HSProps = &HLM.GetDxilFunctionProps(EntryFunc.Func); HLM.SetPatchConstantFunctionForHS(EntryFunc.Func, patchConstFunc); DXASSERT_NOMSG(patchConstantFunctionPropsMap.count(patchConstFunc)); // Check no inout parameter for patch constant function. @@ -1491,24 +1490,6 @@ Diags.Report(Entry->second.SL, DiagID) << funcName; } } - - // Input/Output control point validation. - if (patchConstantFunctionPropsMap.count(patchConstFunc)) { - const DxilFunctionProps &patchProps = - *patchConstantFunctionPropsMap[patchConstFunc]; - if (patchProps.ShaderProps.HS.outputControlPoints != 0 && - patchProps.ShaderProps.HS.outputControlPoints != - HSProps->ShaderProps.HS.outputControlPoints) { - clang::DiagnosticsEngine &Diags = CGM.getDiags(); - unsigned DiagID = - Diags.getCustomDiagID(clang::DiagnosticsEngine::Error, - "Patch constant function's output patch input " - "should have %0 elements, but has %1."); - Diags.Report(Entry->second.SL, DiagID) - << HSProps->ShaderProps.HS.outputControlPoints - << patchProps.ShaderProps.HS.outputControlPoints; - } - } } void SetPatchConstantFunction( diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -63,6 +63,123 @@ } std::pair AlignmentSizeCalculator::getAlignmentAndSize( + QualType type, const RecordType *structType, SpirvLayoutRule rule, + llvm::Optional isRowMajor, uint32_t *stride) const { + bool hasBaseStructs = type->getAsCXXRecordDecl() && + type->getAsCXXRecordDecl()->getNumBases() > 0; + + // Special case for handling empty structs, whose size is 0 and has no + // requirement over alignment (thus 1). + if (structType->getDecl()->field_empty() && !hasBaseStructs) + return {1, 0}; + + uint32_t maxAlignment = 0; + uint32_t structSize = 0; + + // If this struct is derived from some other structs, place an implicit + // field at the very beginning for the base struct. + if (const auto *cxxDecl = dyn_cast(structType->getDecl())) { + for (const auto &base : cxxDecl->bases()) { + uint32_t memberAlignment = 0, memberSize = 0; + std::tie(memberAlignment, memberSize) = + getAlignmentAndSize(base.getType(), rule, isRowMajor, stride); + + if (rule == SpirvLayoutRule::RelaxedGLSLStd140 || + rule == SpirvLayoutRule::RelaxedGLSLStd430 || + rule == SpirvLayoutRule::FxcCTBuffer) { + alignUsingHLSLRelaxedLayout(base.getType(), memberSize, memberAlignment, + &structSize); + } else { + structSize = roundToPow2(structSize, memberAlignment); + } + + // The base alignment of the structure is N, where N is the largest + // base alignment value of any of its members... + maxAlignment = std::max(maxAlignment, memberAlignment); + structSize += memberSize; + } + } + + const FieldDecl *lastField = nullptr; + uint32_t nextAvailableBitOffset = 0; + for (const FieldDecl *field : structType->getDecl()->fields()) { + uint32_t memberAlignment = 0, memberSize = 0; + std::tie(memberAlignment, memberSize) = + getAlignmentAndSize(field->getType(), rule, isRowMajor, stride); + + uint32_t memberBitOffset = 0; + do { + if (!lastField) + break; + + if (!field->isBitField() || !lastField->isBitField()) + break; + + // Not the same type as the previous bitfield. Ignoring. + if (lastField->getType() != field->getType()) + break; + + // Not enough room left to fit this bitfield. Starting a new slot. + if (nextAvailableBitOffset + field->getBitWidthValue(astContext) > + memberSize * 8) + break; + + memberBitOffset = nextAvailableBitOffset; + memberSize = 0; + } while (0); + + if (memberSize != 0) { + if (rule == SpirvLayoutRule::RelaxedGLSLStd140 || + rule == SpirvLayoutRule::RelaxedGLSLStd430 || + rule == SpirvLayoutRule::FxcCTBuffer) { + alignUsingHLSLRelaxedLayout(field->getType(), memberSize, + memberAlignment, &structSize); + } else { + structSize = roundToPow2(structSize, memberAlignment); + } + } + + // Reset the current offset to the one specified in the source code + // if exists. It's debatable whether we should do sanity check here. + // If the developers want manually control the layout, we leave + // everything to them. + if (const auto *offsetAttr = field->getAttr()) { + structSize = offsetAttr->getOffset(); + } + + // The base alignment of the structure is N, where N is the largest + // base alignment value of any of its members... + maxAlignment = std::max(maxAlignment, memberAlignment); + structSize += memberSize; + lastField = field; + nextAvailableBitOffset = + field->isBitField() + ? memberBitOffset + field->getBitWidthValue(astContext) + : 0; + } + + if (rule == SpirvLayoutRule::Scalar) { + // A structure has a scalar alignment equal to the largest scalar + // alignment of any of its members in VK_EXT_scalar_block_layout. + return {maxAlignment, structSize}; + } + + if (rule == SpirvLayoutRule::GLSLStd140 || + rule == SpirvLayoutRule::RelaxedGLSLStd140 || + rule == SpirvLayoutRule::FxcCTBuffer) { + // ... and rounded up to the base alignment of a vec4. + maxAlignment = roundToPow2(maxAlignment, kStd140Vec4Alignment); + } + + if (rule != SpirvLayoutRule::FxcCTBuffer) { + // The base offset of the member following the sub-structure is rounded + // up to the next multiple of the base alignment of the structure. + structSize = roundToPow2(structSize, maxAlignment); + } + return {maxAlignment, structSize}; +} + +std::pair AlignmentSizeCalculator::getAlignmentAndSize( QualType type, SpirvLayoutRule rule, llvm::Optional isRowMajor, uint32_t *stride) const { // std140 layout rules: @@ -144,8 +261,7 @@ const auto desugaredType = desugarType(type, &isRowMajor); if (desugaredType != type) { - auto result = getAlignmentAndSize(desugaredType, rule, isRowMajor, stride); - return result; + return getAlignmentAndSize(desugaredType, rule, isRowMajor, stride); } if (isEnumType(type)) @@ -268,88 +384,7 @@ // Rule 9 if (const auto *structType = type->getAs()) { - bool hasBaseStructs = type->getAsCXXRecordDecl() && - type->getAsCXXRecordDecl()->getNumBases() > 0; - - // Special case for handling empty structs, whose size is 0 and has no - // requirement over alignment (thus 1). - if (structType->getDecl()->field_empty() && !hasBaseStructs) - return {1, 0}; - - uint32_t maxAlignment = 0; - uint32_t structSize = 0; - - // If this struct is derived from some other structs, place an implicit - // field at the very beginning for the base struct. - if (const auto *cxxDecl = dyn_cast(structType->getDecl())) { - for (const auto &base : cxxDecl->bases()) { - uint32_t memberAlignment = 0, memberSize = 0; - std::tie(memberAlignment, memberSize) = - getAlignmentAndSize(base.getType(), rule, isRowMajor, stride); - - if (rule == SpirvLayoutRule::RelaxedGLSLStd140 || - rule == SpirvLayoutRule::RelaxedGLSLStd430 || - rule == SpirvLayoutRule::FxcCTBuffer) { - alignUsingHLSLRelaxedLayout(base.getType(), memberSize, - memberAlignment, &structSize); - } else { - structSize = roundToPow2(structSize, memberAlignment); - } - - // The base alignment of the structure is N, where N is the largest - // base alignment value of any of its members... - maxAlignment = std::max(maxAlignment, memberAlignment); - structSize += memberSize; - } - } - - for (const auto *field : structType->getDecl()->fields()) { - uint32_t memberAlignment = 0, memberSize = 0; - std::tie(memberAlignment, memberSize) = - getAlignmentAndSize(field->getType(), rule, isRowMajor, stride); - - if (rule == SpirvLayoutRule::RelaxedGLSLStd140 || - rule == SpirvLayoutRule::RelaxedGLSLStd430 || - rule == SpirvLayoutRule::FxcCTBuffer) { - alignUsingHLSLRelaxedLayout(field->getType(), memberSize, - memberAlignment, &structSize); - } else { - structSize = roundToPow2(structSize, memberAlignment); - } - - // Reset the current offset to the one specified in the source code - // if exists. It's debatable whether we should do sanity check here. - // If the developers want manually control the layout, we leave - // everything to them. - if (const auto *offsetAttr = field->getAttr()) { - structSize = offsetAttr->getOffset(); - } - - // The base alignment of the structure is N, where N is the largest - // base alignment value of any of its members... - maxAlignment = std::max(maxAlignment, memberAlignment); - structSize += memberSize; - } - - if (rule == SpirvLayoutRule::Scalar) { - // A structure has a scalar alignment equal to the largest scalar - // alignment of any of its members in VK_EXT_scalar_block_layout. - return {maxAlignment, structSize}; - } - - if (rule == SpirvLayoutRule::GLSLStd140 || - rule == SpirvLayoutRule::RelaxedGLSLStd140 || - rule == SpirvLayoutRule::FxcCTBuffer) { - // ... and rounded up to the base alignment of a vec4. - maxAlignment = roundToPow2(maxAlignment, kStd140Vec4Alignment); - } - - if (rule != SpirvLayoutRule::FxcCTBuffer) { - // The base offset of the member following the sub-structure is rounded - // up to the next multiple of the base alignment of the structure. - structSize = roundToPow2(structSize, maxAlignment); - } - return {maxAlignment, structSize}; + return getAlignmentAndSize(type, structType, rule, isRowMajor, stride); } // Rule 4, 6, 8, and 10 diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.h 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/AlignmentSizeCalculator.h 2024-05-21 22:47:21.000000000 +0000 @@ -67,6 +67,13 @@ return astContext.getDiagnostics().Report(srcLoc, diagId); } + // Returns the alignment and size in bytes for the given struct + // according to the given LayoutRule. + std::pair + getAlignmentAndSize(QualType type, const RecordType *structType, + SpirvLayoutRule rule, llvm::Optional isRowMajor, + uint32_t *stride) const; + private: ASTContext &astContext; /// AST context const SpirvCodeGenOptions &spvOptions; /// SPIR-V options diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/CapabilityVisitor.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/CapabilityVisitor.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/CapabilityVisitor.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/CapabilityVisitor.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -722,6 +722,18 @@ addExtension(Extension::KHR_maximal_reconvergence, "", execModeSourceLocation); break; + case spv::ExecutionMode::DenormPreserve: + case spv::ExecutionMode::DenormFlushToZero: + // KHR_float_controls was promoted to core in Vulkan 1.2. + if (!featureManager.isTargetEnvVulkan1p2OrAbove()) { + addExtension(Extension::KHR_float_controls, "SPV_KHR_float_controls", + execModeSourceLocation); + } + addCapability(executionMode == spv::ExecutionMode::DenormPreserve + ? spv::Capability::DenormPreserve + : spv::Capability::DenormFlushToZero, + execModeSourceLocation); + break; default: break; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/DeclResultIdMapper.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/DeclResultIdMapper.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/DeclResultIdMapper.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/DeclResultIdMapper.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -1364,13 +1364,26 @@ const hlsl::RegisterAssignment *registerC = forGlobals ? getRegisterCAssignment(declDecl) : nullptr; + llvm::Optional bitfieldInfo; + { + const FieldDecl *Field = dyn_cast(subDecl); + if (Field && Field->isBitField()) { + bitfieldInfo = BitfieldInfo(); + bitfieldInfo->sizeInBits = + Field->getBitWidthValue(Field->getASTContext()); + } + } + // All fields are qualified with const. It will affect the debug name. // We don't need it here. varType.removeLocalConst(); - HybridStructType::FieldInfo info(varType, declDecl->getName(), - declDecl->getAttr(), - getPackOffset(declDecl), registerC, - declDecl->hasAttr()); + HybridStructType::FieldInfo info( + varType, declDecl->getName(), + /*vkoffset*/ declDecl->getAttr(), + /*packoffset*/ getPackOffset(declDecl), + /*RegisterAssignment*/ registerC, + /*isPrecise*/ declDecl->hasAttr(), + /*bitfield*/ bitfieldInfo); fields.push_back(info); } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/FeatureManager.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/FeatureManager.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/FeatureManager.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/FeatureManager.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -196,6 +196,7 @@ Extension::KHR_fragment_shader_barycentric) .Case("SPV_KHR_maximal_reconvergence", Extension::KHR_maximal_reconvergence) + .Case("SPV_KHR_float_controls", Extension::KHR_float_controls) .Default(Extension::Unknown); } @@ -261,6 +262,8 @@ return "SPV_KHR_fragment_shader_barycentric"; case Extension::KHR_maximal_reconvergence: return "SPV_KHR_maximal_reconvergence"; + case Extension::KHR_float_controls: + return "SPV_KHR_float_controls"; default: break; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/InitListHandler.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/InitListHandler.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/InitListHandler.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/InitListHandler.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -452,14 +452,9 @@ // For the remaining bitfields, we need to insert them into the existing // container, which is the last element in `fields`. assert(fields.size() == fieldInfo.fieldIndex + 1); - SpirvInstruction *offset = spvBuilder.getConstantInt( - astContext.UnsignedIntTy, - llvm::APInt(32, fieldInfo.bitfield->offsetInBits)); - SpirvInstruction *count = spvBuilder.getConstantInt( - astContext.UnsignedIntTy, - llvm::APInt(32, fieldInfo.bitfield->sizeInBits)); fields.back() = spvBuilder.createBitFieldInsert( - fieldType, fields.back(), init, offset, count, srcLoc); + fieldType, fields.back(), init, fieldInfo.bitfield->offsetInBits, + fieldInfo.bitfield->sizeInBits, srcLoc, range); return true; }, true); diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/PervertexInputVisitor.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/PervertexInputVisitor.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/PervertexInputVisitor.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/PervertexInputVisitor.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -56,6 +56,11 @@ ///< treated as nointerpolated too. bool PervertexInputVisitor::expandNointerpVarAndParam( SpirvInstruction *spvInst) { + // If there is no AST type, it means the type was already lowered from some + // expression/construct. If it required expansion, it should be done already. + if (!spvInst->hasAstResultType()) + return spvInst->isNoninterpolated(); + QualType type = spvInst->getAstResultType(); bool isExpanded = false; auto typePtr = type.getTypePtr(); diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvBuilder.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvBuilder.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvBuilder.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvBuilder.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -298,16 +298,9 @@ context.addToInstructionsWithLoweredType(value); auto *base = createLoad(value->getResultType(), address, loc, range); - auto *offset = getConstantInt( - astContext.UnsignedIntTy, - llvm::APInt(32, static_cast(bitfieldInfo->offsetInBits), - false)); - auto *count = getConstantInt( - astContext.UnsignedIntTy, - llvm::APInt(32, static_cast(bitfieldInfo->sizeInBits), - false)); - source = - createBitFieldInsert(/*QualType*/ {}, base, value, offset, count, loc); + source = createBitFieldInsert(/*QualType*/ {}, base, value, + bitfieldInfo->offsetInBits, + bitfieldInfo->sizeInBits, loc, range); source->setResultType(value->getResultType()); } @@ -882,12 +875,106 @@ insertPoint->addInstruction(barrier); } -SpirvBitFieldInsert *SpirvBuilder::createBitFieldInsert( - QualType resultType, SpirvInstruction *base, SpirvInstruction *insert, - SpirvInstruction *offset, SpirvInstruction *count, SourceLocation loc) { +SpirvInstruction *SpirvBuilder::createEmulatedBitFieldInsert( + QualType resultType, uint32_t baseTypeBitwidth, SpirvInstruction *base, + SpirvInstruction *insert, unsigned bitOffset, unsigned bitCount, + SourceLocation loc, SourceRange range) { + + // The destination is a raw struct field, which can contain several bitfields: + // raw field: AAAABBBBCCCCCCCCDDDD + // To insert a new value for the field BBBB, we need to clear the B bits in + // the field, and insert the new values. + + // Create a mask to clear B from the raw field. + // mask = (1 << bitCount) - 1 + // raw field: AAAABBBBCCCCCCCCDDDD + // mask: 00000000000000001111 + // cast mask to the an unsigned with the same bitwidth. + // mask = (unsigned dstType)mask + // Move the mask to B's position in the raw type. + // mask = mask << bitOffset + // raw field: AAAABBBBCCCCCCCCDDDD + // mask: 00001111000000000000 + // Generate inverted mask to clear other bits in *insert*. + // notMask = ~mask + // raw field: AAAABBBBCCCCCCCCDDDD + // mask: 11110000111111111111 + assert(bitCount <= 64 && + "Bitfield insertion emulation can only insert at most 64 bits."); + auto maskTy = + astContext.getIntTypeForBitwidth(baseTypeBitwidth, /* signed= */ 0); + const uint64_t maskValue = ((1ull << bitCount) - 1ull) << bitOffset; + const uint64_t notMaskValue = ~maskValue; + + auto *mask = getConstantInt(maskTy, llvm::APInt(baseTypeBitwidth, maskValue)); + auto *notMask = + getConstantInt(maskTy, llvm::APInt(baseTypeBitwidth, notMaskValue)); + auto *shiftOffset = + getConstantInt(astContext.UnsignedIntTy, llvm::APInt(32, bitOffset)); + + // base = base & MASK // Clear bits at B's position. + // input: AAAABBBBCCCCCCCCDDDD + // output: AAAA----CCCCCCCCDDDD + auto *clearedDst = createBinaryOp(spv::Op::OpBitwiseAnd, resultType, base, + notMask, loc, range); + + // input: SSSSSSSSSSSSSSSSBBBB + // tmp = (dstType)SRC // Convert SRC to the base type. + // tmp = tmp << bitOffset // Move the SRC value to the correct bit offset. + // output: SSSSBBBB------------ + // tmp = tmp & ~MASK // Clear any sign extension bits. + // output: ----BBBB------------ + auto *castedSrc = + createUnaryOp(spv::Op::OpBitcast, resultType, insert, loc, range); + auto *shiftedSrc = createBinaryOp(spv::Op::OpShiftLeftLogical, resultType, + castedSrc, shiftOffset, loc, range); + auto *maskedSrc = createBinaryOp(spv::Op::OpBitwiseAnd, resultType, + shiftedSrc, mask, loc, range); + + // base = base | tmp; // Insert B in the raw field. + // tmp: ----BBBB------------ + // base: AAAA----CCCCCCCCDDDD + // output: AAAABBBBCCCCCCCCDDDD + auto *result = createBinaryOp(spv::Op::OpBitwiseOr, resultType, clearedDst, + maskedSrc, loc, range); + + if (base->getResultType()) { + auto *dstTy = dyn_cast(base->getResultType()); + clearedDst->setResultType(dstTy); + shiftedSrc->setResultType(dstTy); + maskedSrc->setResultType(dstTy); + castedSrc->setResultType(dstTy); + result->setResultType(dstTy); + } + return result; +} + +SpirvInstruction * +SpirvBuilder::createBitFieldInsert(QualType resultType, SpirvInstruction *base, + SpirvInstruction *insert, unsigned bitOffset, + unsigned bitCount, SourceLocation loc, + SourceRange range) { assert(insertPoint && "null insert point"); - auto *inst = new (context) - SpirvBitFieldInsert(resultType, loc, base, insert, offset, count); + + uint32_t bitwidth = 0; + if (resultType == QualType({})) { + assert(base->hasResultType() && "No type information for bitfield."); + bitwidth = dyn_cast(base->getResultType())->getBitwidth(); + } else { + bitwidth = getElementSpirvBitwidth(astContext, resultType, + spirvOptions.enable16BitTypes); + } + + if (bitwidth != 32) + return createEmulatedBitFieldInsert(resultType, bitwidth, base, insert, + bitOffset, bitCount, loc, range); + + auto *insertOffset = + getConstantInt(astContext.UnsignedIntTy, llvm::APInt(32, bitOffset)); + auto *insertCount = + getConstantInt(astContext.UnsignedIntTy, llvm::APInt(32, bitCount)); + auto *inst = new (context) SpirvBitFieldInsert(resultType, loc, base, insert, + insertOffset, insertCount); insertPoint->addInstruction(inst); inst->setRValue(true); return inst; diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -843,6 +843,23 @@ SourceLocation()); } + llvm::StringRef denormMode = spirvOptions.floatDenormalMode; + if (!denormMode.empty()) { + if (denormMode.equals_lower("preserve")) { + spvBuilder.addExecutionMode(entryFunction, + spv::ExecutionMode::DenormPreserve, {32}, {}); + } else if (denormMode.equals_lower("ftz")) { + spvBuilder.addExecutionMode( + entryFunction, spv::ExecutionMode::DenormFlushToZero, {32}, {}); + } else if (denormMode.equals_lower("any")) { + // Do nothing. Since any behavior is allowed, we could optionally choose + // to translate to DenormPreserve or DenormFlushToZero if one was known to + // be more performant on most platforms. + } else { + assert(false && "unsupported denorm value"); + } + } + // Output the constructed module. std::vector m = spvBuilder.takeModule(); if (context.getDiagnostics().hasErrorOccurred()) @@ -8737,6 +8754,10 @@ retVal = processIntrinsicDP4a(callExpr, hlslOpcode); break; } + case hlsl::IntrinsicOp::IOP_dot2add: { + retVal = processIntrinsicDP2a(callExpr); + break; + } case hlsl::IntrinsicOp::IOP_pack_s8: case hlsl::IntrinsicOp::IOP_pack_u8: case hlsl::IntrinsicOp::IOP_pack_clamp_s8: @@ -9216,6 +9237,7 @@ SpirvInstruction * SpirvEmitter::processIntrinsicMsad4(const CallExpr *callExpr) { const auto loc = callExpr->getExprLoc(); + const auto range = callExpr->getSourceRange(); if (!spirvOptions.noWarnEmulatedFeatures) emitWarning("msad4 intrinsic function is emulated using many SPIR-V " "instructions due to lack of direct SPIR-V equivalent", @@ -9276,18 +9298,15 @@ // Do bfi 3 times. DXIL bfi is equivalent to SPIR-V OpBitFieldInsert. auto *v1y = spvBuilder.createCompositeExtract(uintType, source, {1}, loc); // Note that t0.x = v1.x, nothing we need to do for that. - auto *t0y = - spvBuilder.createBitFieldInsert(uintType, /*base*/ v1xS8, /*insert*/ v1y, - /*offset*/ uint24, - /*width*/ uint8, loc); - auto *t0z = - spvBuilder.createBitFieldInsert(uintType, /*base*/ v1xS16, /*insert*/ v1y, - /*offset*/ uint16, - /*width*/ uint16, loc); - auto *t0w = - spvBuilder.createBitFieldInsert(uintType, /*base*/ v1xS24, /*insert*/ v1y, - /*offset*/ uint8, - /*width*/ uint24, loc); + auto *t0y = spvBuilder.createBitFieldInsert( + uintType, /*base*/ v1xS8, /*insert*/ v1y, + /* bitOffest */ 24, /* bitCount */ 8, loc, range); + auto *t0z = spvBuilder.createBitFieldInsert( + uintType, /*base*/ v1xS16, /*insert*/ v1y, + /* bitOffest */ 16, /* bitCount */ 16, loc, range); + auto *t0w = spvBuilder.createBitFieldInsert( + uintType, /*base*/ v1xS24, /*insert*/ v1y, + /* bitOffest */ 8, /* bitCount */ 24, loc, range); // Step 3. MSAD (Masked Sum of Absolute Differences) @@ -11499,6 +11518,51 @@ arg2Instr, loc, range); } +SpirvInstruction *SpirvEmitter::processIntrinsicDP2a(const CallExpr *callExpr) { + // Processing the `dot2add` intrinsic. + // There is no direct substitution for it in SPIR-V, so it is recreated with a + // combination of OpDot and OpFAdd. + // + // float dot2add( half2 a, half2 b, float acc ); + // A 2-dimensional floating point dot product of half2 vectors with add. + // Multiplies the elements of the two half-precision float input vectors + // together and sums the results into the 32-bit float accumulator. + + auto loc = callExpr->getExprLoc(); + auto range = callExpr->getSourceRange(); + + assert(callExpr->getNumArgs() == 3u); + + const Expr *arg0 = callExpr->getArg(0); + const Expr *arg1 = callExpr->getArg(1); + const Expr *arg2 = callExpr->getArg(2); + + QualType vecType = arg0->getType(); + QualType componentType = {}; + uint32_t vecSize = {}; + bool isVec = isVectorType(vecType, &componentType, &vecSize); + + assert(isVec && vecSize == 2); + (void)isVec; + + SpirvInstruction *arg0Instr = doExpr(arg0); + SpirvInstruction *arg1Instr = doExpr(arg1); + SpirvInstruction *arg2Instr = doExpr(arg2); + + // Create the dot product of the half2 vectors. + SpirvInstruction *dotInstr = spvBuilder.createBinaryOp( + spv::Op::OpDot, componentType, arg0Instr, arg1Instr, loc, range); + + // Convert dot product (half type) to result type (float). + QualType resultType = callExpr->getType(); + SpirvInstruction *floatDotInstr = spvBuilder.createUnaryOp( + spv::Op::OpFConvert, resultType, dotInstr, loc, range); + + // Sum the dot product result and accumulator and return. + return spvBuilder.createBinaryOp(spv::Op::OpFAdd, resultType, floatDotInstr, + arg2Instr, loc, range); +} + SpirvInstruction * SpirvEmitter::processIntrinsic8BitPack(const CallExpr *callExpr, hlsl::IntrinsicOp op) { diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.h chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.h --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.h 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/SPIRV/SpirvEmitter.h 2024-05-21 22:47:21.000000000 +0000 @@ -662,6 +662,9 @@ SpirvInstruction *processIntrinsicDP4a(const CallExpr *callExpr, hlsl::IntrinsicOp op); + /// Processes the SM 6.4 dot2add intrinsic function. + SpirvInstruction *processIntrinsicDP2a(const CallExpr *callExpr); + /// Processes the SM 6.6 pack_{s|u}8 and pack_clamp_{s|u}8 intrinsic /// functions. SpirvInstruction *processIntrinsic8BitPack(const CallExpr *, diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaChecking.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaChecking.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaChecking.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaChecking.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -522,7 +522,6 @@ TheCall->setType(Context.VoidPtrTy); break; - } // Since the target specific builtins for each arch overlap, only check those @@ -1427,6 +1426,8 @@ CheckMemaccessArguments(TheCall, CMId, FnInfo); #endif // HLSL Change Ends + CheckHLSLFunctionCall(FDecl, TheCall, Proto); // HLSL Change + return false; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaDecl.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaDecl.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaDecl.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaDecl.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -4972,8 +4972,6 @@ if (!New) return nullptr; - TransferUnusualAttributes(D, New); // HLSL Change - // If this has an identifier and is not an invalid redeclaration or // function template specialization, add it to the scope stack. if (New->getDeclName() && AddToScope && @@ -5187,6 +5185,8 @@ bool Redeclaration = D.isRedeclaration(); NamedDecl *ND = ActOnTypedefNameDecl(S, DC, NewTD, Previous, Redeclaration); D.setRedeclaration(Redeclaration); + + TransferUnusualAttributes(D, ND); // HLSL Change return ND; } @@ -6202,6 +6202,7 @@ return NewTemplate; } + TransferUnusualAttributes(D, NewVD); // HLSL Change return NewVD; } @@ -8108,10 +8109,14 @@ AddToScope = false; } + // HLSL Change Starts + TransferUnusualAttributes(D, NewFD); + if (getLangOpts().HLSL && D.isFunctionDefinition() && D.hasName() && NewFD->getDeclContext()->getRedeclContext()->isTranslationUnit()) { hlsl::DiagnoseEntry(*this, NewFD); } + // HLSL Change Ends return NewFD; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaExpr.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaExpr.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaExpr.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaExpr.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -5288,7 +5288,8 @@ if (FDecl) { if (CheckFunctionCall(FDecl, TheCall, Proto)) return ExprError(); - + if (CheckHLSLFunctionCall(FDecl, TheCall)) + return ExprError(); if (BuiltinID) return CheckBuiltinFunctionCall(FDecl, BuiltinID, TheCall); } else if (NDecl) { diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSL.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSL.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSL.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSL.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -1853,8 +1853,8 @@ } } -static bool IsBuiltinTable(LPCSTR tableName) { - return tableName == kBuiltinIntrinsicTableName; +static bool IsBuiltinTable(StringRef tableName) { + return tableName.compare(kBuiltinIntrinsicTableName) == 0; } static bool HasUnsignedOpcode(LPCSTR tableName, IntrinsicOp opcode) { @@ -2521,8 +2521,8 @@ _firstChecked = true; // TODO: review this - this will allocate at least once per string - CA2WEX<> typeName(_typeName.str().c_str(), CP_UTF8); - CA2WEX<> functionName(_functionName.str().c_str(), CP_UTF8); + CA2WEX<> typeName(_typeName.str().c_str()); + CA2WEX<> functionName(_functionName.str().c_str()); if (FAILED(_tables[_tableIndex]->LookupIntrinsic( typeName, functionName, &_tableIntrinsic, &_tableLookupCookie))) { @@ -4469,7 +4469,7 @@ const HLSL_INTRINSIC *pIntrinsic = nullptr; const HLSL_INTRINSIC *pPrior = nullptr; UINT64 lookupCookie = 0; - CA2W wideTypeName(typeName, CP_UTF8); + CA2W wideTypeName(typeName); HRESULT found = table->LookupIntrinsic(wideTypeName, L"*", &pIntrinsic, &lookupCookie); while (pIntrinsic != nullptr && SUCCEEDED(found)) { @@ -11117,37 +11117,18 @@ } } -// Check HLSL member call constraints -bool Sema::DiagnoseHLSLMethodCall(const CXXMethodDecl *MD, SourceLocation Loc) { - if (MD->hasAttr()) { - hlsl::IntrinsicOp opCode = - (IntrinsicOp)MD->getAttr()->getOpcode(); - // If this is a call to FinishedCrossGroupSharing then the Input record - // must have the NodeTrackRWInputSharing attribute - if (opCode == hlsl::IntrinsicOp::MOP_FinishedCrossGroupSharing) { - const CXXRecordDecl *NodeRecDecl = MD->getParent(); - // Node I/O records are templateTypes - const ClassTemplateSpecializationDecl *templateDecl = - cast(NodeRecDecl); - auto &TemplateArgs = templateDecl->getTemplateArgs(); - DXASSERT(TemplateArgs.size() == 1, - "Input record types need to have one template argument"); - auto &Rec = TemplateArgs.get(0); - clang::QualType RecType = Rec.getAsType(); - RecordDecl *RD = RecType->getAs()->getDecl(); - if (!RD->hasAttr()) { - Diags.Report(Loc, diag::err_hlsl_wg_nodetrackrwinputsharing_missing); - return true; - } - } - } - return false; -} - +// FIXME: DiagnoseSVForLaunchType is wrong in multiple ways: +// - It doesn't handle system values inside structs +// - It doesn't account for the fact that semantics are case-insensitive +// - It doesn't account for optional index at the end of semantic name +// - It permits any `SV_*` for Broadcasting launch, not just the legal ones +// - It doesn't prevent multiple system values with the same semantic +// - It doesn't check that the type is valid for the system value // Produce diagnostics for any system values attached to `FD` function // that are invalid for the `LaunchTy` launch type -void Sema::DiagnoseSVForLaunchType(const FunctionDecl *FD, - DXIL::NodeLaunchType LaunchTy) { +static void DiagnoseSVForLaunchType(const FunctionDecl *FD, + DXIL::NodeLaunchType LaunchTy, + DiagnosticsEngine &Diags) { // Validate Compute Shader system value inputs per launch mode for (ParmVarDecl *param : FD->parameters()) { for (const hlsl::UnusualAnnotation *it : param->getUnusualAnnotations()) { @@ -11188,88 +11169,376 @@ } } -// Check HLSL member call constraints for used functions. -void Sema::DiagnoseReachableHLSLMethodCall(const CXXMethodDecl *MD, - SourceLocation Loc, - const hlsl::ShaderModel *SM, - DXIL::ShaderKind EntrySK, - const FunctionDecl *EntryDecl) { - if (MD->hasAttr()) { - hlsl::IntrinsicOp opCode = - (IntrinsicOp)MD->getAttr()->getOpcode(); - switch (opCode) { - case hlsl::IntrinsicOp::MOP_CalculateLevelOfDetail: - case hlsl::IntrinsicOp::MOP_CalculateLevelOfDetailUnclamped: { - QualType SamplerComparisonTy = - HLSLExternalSource::FromSema(this)->GetBasicKindType( - AR_OBJECT_SAMPLERCOMPARISON); - if (MD->getParamDecl(0)->getType() == SamplerComparisonTy) { - - if (!SM->IsSM68Plus()) { - - Diags.Report(Loc, - diag::warn_hlsl_intrinsic_overload_in_wrong_shader_model) - << MD->getNameAsString() + " with SamplerComparisonState" - << "6.8"; - } else { +///////////////////////////////////////////////////////////////////////////// +// Check HLSL intrinsic calls without call-graph context. - switch (EntrySK) { - default: { - if (!SM->AllowDerivatives(EntrySK)) { - Diags.Report(Loc, - diag::warn_hlsl_derivatives_in_wrong_shader_kind) - << MD->getNameAsString() << EntryDecl->getNameAsString(); - Diags.Report(EntryDecl->getLocation(), diag::note_declared_at); - } - } break; - case DXIL::ShaderKind::Compute: - case DXIL::ShaderKind::Amplification: - case DXIL::ShaderKind::Mesh: { - if (!SM->IsSM66Plus()) { - Diags.Report(Loc, - diag::warn_hlsl_derivatives_in_wrong_shader_model) - << MD->getNameAsString() << EntryDecl->getNameAsString(); - Diags.Report(EntryDecl->getLocation(), diag::note_declared_at); - } - } break; - case DXIL::ShaderKind::Node: { - if (const auto *pAttr = EntryDecl->getAttr()) { - if (pAttr->getLaunchType() != "broadcasting") { - Diags.Report(Loc, - diag::warn_hlsl_derivatives_in_wrong_shader_kind) - << MD->getNameAsString() << EntryDecl->getNameAsString(); - Diags.Report(EntryDecl->getLocation(), diag::note_declared_at); - } - } - } break; - } - if (const HLSLNumThreadsAttr *Attr = - EntryDecl->getAttr()) { - bool invalidNumThreads = false; - if (Attr->getY() != 1) { - // 2D mode requires x and y to be multiple of 2. - invalidNumThreads = - !((Attr->getX() % 2) == 0 && (Attr->getY() % 2) == 0); - } else { - // 1D mode requires x to be multiple of 4 and y and z to be 1. - invalidNumThreads = - (Attr->getX() % 4) != 0 || (Attr->getZ() != 1); - } - if (invalidNumThreads) { - Diags.Report(Loc, diag::warn_hlsl_derivatives_wrong_numthreads) - << MD->getNameAsString() << EntryDecl->getNameAsString(); - Diags.Report(EntryDecl->getLocation(), diag::note_declared_at); - } - } - } +static bool CheckFinishedCrossGroupSharingCall(Sema &S, CXXMethodDecl *MD, + SourceLocation Loc) { + const CXXRecordDecl *NodeRecDecl = MD->getParent(); + // Node I/O records are templateTypes + const ClassTemplateSpecializationDecl *templateDecl = + cast(NodeRecDecl); + auto &TemplateArgs = templateDecl->getTemplateArgs(); + DXASSERT(TemplateArgs.size() == 1, + "Input record types need to have one template argument"); + auto &Rec = TemplateArgs.get(0); + clang::QualType RecType = Rec.getAsType(); + RecordDecl *RD = RecType->getAs()->getDecl(); + if (!RD->hasAttr()) { + S.Diags.Report(Loc, diag::err_hlsl_wg_nodetrackrwinputsharing_missing); + return true; + } + return false; +} + +static bool CheckBarrierCall(Sema &S, FunctionDecl *FD, CallExpr *CE) { + DXASSERT(FD->getNumParams() == 2, "otherwise, unknown Barrier overload"); + + // Emit error when MemoryTypeFlags are known to be invalid. + QualType Param0Ty = FD->getParamDecl(0)->getType(); + if (Param0Ty == + HLSLExternalSource::FromSema(&S)->GetBasicKindType(AR_BASIC_UINT32)) { + uint32_t MemoryTypeFlags = 0; + Expr *MemoryTypeFlagsExpr = CE->getArg(0); + llvm::APSInt MemoryTypeFlagsVal; + if (MemoryTypeFlagsExpr->isIntegerConstantExpr(MemoryTypeFlagsVal, + S.Context)) { + MemoryTypeFlags = MemoryTypeFlagsVal.getLimitedValue(); + if ((uint32_t)MemoryTypeFlags & + ~(uint32_t)DXIL::MemoryTypeFlag::ValidMask) { + S.Diags.Report(MemoryTypeFlagsExpr->getExprLoc(), + diag::err_hlsl_barrier_invalid_memory_flags) + << (uint32_t)MemoryTypeFlags + << (uint32_t)DXIL::MemoryTypeFlag::ValidMask; + return true; } - } break; - default: - break; } } + + // Emit error when SemanticFlags are known to be invalid. + uint32_t SemanticFlags = 0; + Expr *SemanticFlagsExpr = CE->getArg(1); + llvm::APSInt SemanticFlagsVal; + if (SemanticFlagsExpr->isIntegerConstantExpr(SemanticFlagsVal, S.Context)) { + SemanticFlags = SemanticFlagsVal.getLimitedValue(); + if ((uint32_t)SemanticFlags & + ~(uint32_t)DXIL::BarrierSemanticFlag::ValidMask) { + S.Diags.Report(SemanticFlagsExpr->getExprLoc(), + diag::err_hlsl_barrier_invalid_semantic_flags) + << (uint32_t)SemanticFlags + << (uint32_t)DXIL::BarrierSemanticFlag::ValidMask; + return true; + } + } + + return false; } +// Check HLSL call constraints, not fatal to creating the AST. +void Sema::CheckHLSLFunctionCall(FunctionDecl *FDecl, CallExpr *TheCall, + const FunctionProtoType *Proto) { + HLSLIntrinsicAttr *IntrinsicAttr = FDecl->getAttr(); + if (!IntrinsicAttr) + return; + if (!IsBuiltinTable(IntrinsicAttr->getGroup())) + return; + + hlsl::IntrinsicOp opCode = (hlsl::IntrinsicOp)IntrinsicAttr->getOpcode(); + switch (opCode) { + case hlsl::IntrinsicOp::MOP_FinishedCrossGroupSharing: + CheckFinishedCrossGroupSharingCall(*this, cast(FDecl), + TheCall->getLocStart()); + break; + case hlsl::IntrinsicOp::IOP_Barrier: + CheckBarrierCall(*this, FDecl, TheCall); + break; + default: + break; + } +} + +///////////////////////////////////////////////////////////////////////////// +// Check HLSL intrinsic calls reachable from entry/export functions. + +static void DiagnoseNumThreadsForDerivativeOp(const HLSLNumThreadsAttr *Attr, + SourceLocation LocDeriv, + FunctionDecl *FD, + const FunctionDecl *EntryDecl, + DiagnosticsEngine &Diags) { + bool invalidNumThreads = false; + if (Attr->getY() != 1) { + // 2D mode requires x and y to be multiple of 2. + invalidNumThreads = !((Attr->getX() % 2) == 0 && (Attr->getY() % 2) == 0); + } else { + // 1D mode requires x to be multiple of 4 and y and z to be 1. + invalidNumThreads = (Attr->getX() % 4) != 0 || (Attr->getZ() != 1); + } + if (invalidNumThreads) { + Diags.Report(LocDeriv, diag::warn_hlsl_derivatives_wrong_numthreads) + << FD->getNameAsString() << EntryDecl->getNameAsString(); + Diags.Report(EntryDecl->getLocation(), diag::note_hlsl_entry_defined_here); + } +} + +static void DiagnoseDerivativeOp(Sema &S, FunctionDecl *FD, SourceLocation Loc, + const hlsl::ShaderModel *SM, + DXIL::ShaderKind EntrySK, + DXIL::NodeLaunchType NodeLaunchTy, + const FunctionDecl *EntryDecl, + DiagnosticsEngine &Diags) { + switch (EntrySK) { + default: { + if (!SM->AllowDerivatives(EntrySK)) { + Diags.Report(Loc, diag::warn_hlsl_derivatives_in_wrong_shader_kind) + << FD->getNameAsString() << EntryDecl->getNameAsString(); + Diags.Report(EntryDecl->getLocation(), + diag::note_hlsl_entry_defined_here); + } + } break; + case DXIL::ShaderKind::Compute: + case DXIL::ShaderKind::Amplification: + case DXIL::ShaderKind::Mesh: { + if (!SM->IsSM66Plus()) { + Diags.Report(Loc, diag::warn_hlsl_derivatives_in_wrong_shader_model) + << FD->getNameAsString() << EntryDecl->getNameAsString(); + Diags.Report(EntryDecl->getLocation(), + diag::note_hlsl_entry_defined_here); + } + } break; + case DXIL::ShaderKind::Node: { + if (NodeLaunchTy != DXIL::NodeLaunchType::Broadcasting) { + Diags.Report(Loc, diag::warn_hlsl_derivatives_in_wrong_shader_kind) + << FD->getNameAsString() << EntryDecl->getNameAsString(); + Diags.Report(EntryDecl->getLocation(), + diag::note_hlsl_entry_defined_here); + } + } break; + } + + if (const HLSLNumThreadsAttr *Attr = + EntryDecl->getAttr()) { + DiagnoseNumThreadsForDerivativeOp(Attr, Loc, FD, EntryDecl, Diags); + } +} + +static void DiagnoseCalculateLOD(Sema &S, FunctionDecl *FD, SourceLocation Loc, + const hlsl::ShaderModel *SM, + DXIL::ShaderKind EntrySK, + DXIL::NodeLaunchType NodeLaunchTy, + const FunctionDecl *EntryDecl, + DiagnosticsEngine &Diags, + bool locallyVisited) { + if (FD->getParamDecl(0)->getType() != + HLSLExternalSource::FromSema(&S)->GetBasicKindType( + AR_OBJECT_SAMPLERCOMPARISON)) + return; + + if (!locallyVisited && !SM->IsSM68Plus()) { + Diags.Report(Loc, diag::warn_hlsl_intrinsic_overload_in_wrong_shader_model) + << FD->getNameAsString() + " with SamplerComparisonState" + << "6.8"; + return; + } + + DiagnoseDerivativeOp(S, FD, Loc, SM, EntrySK, NodeLaunchTy, EntryDecl, Diags); +} + +static uint32_t +DiagnoseMemoryFlags(SourceLocation ArgLoc, uint32_t MemoryTypeFlags, + bool hasVisibleGroup, DXIL::ShaderKind EntrySK, + const FunctionDecl *EntryDecl, DiagnosticsEngine &Diags) { + // Check flags against context. + // If DXIL::MemoryTypeFlag::AllMemory, filter flags for context, otherwise, + // emit errors for invalid flags. + uint32_t MemoryTypeFiltered = MemoryTypeFlags; + + // If group memory specified, must have a visible group. + if (!hasVisibleGroup) { + if ((uint32_t)MemoryTypeFlags & + (uint32_t)DXIL::MemoryTypeFlag::GroupFlags) { + if (MemoryTypeFlags == (uint32_t)DXIL::MemoryTypeFlag::AllMemory) { + // If AllMemory, filter out group flags. + MemoryTypeFiltered &= ~(uint32_t)DXIL::MemoryTypeFlag::GroupFlags; + } else { + Diags.Report(ArgLoc, + diag::warn_hlsl_barrier_group_memory_requires_group); + Diags.Report(EntryDecl->getLocation(), + diag::note_hlsl_entry_defined_here); + } + } + } + + // If node memory specified, must be a node shader. + if (EntrySK != DXIL::ShaderKind::Node && + EntrySK != DXIL::ShaderKind::Library && + ((uint32_t)MemoryTypeFlags & (uint32_t)DXIL::MemoryTypeFlag::NodeFlags)) { + if (MemoryTypeFlags == (uint32_t)DXIL::MemoryTypeFlag::AllMemory) { + // If AllMemory, filter out node flags. + MemoryTypeFiltered &= ~(uint32_t)DXIL::MemoryTypeFlag::NodeFlags; + } else { + Diags.Report(ArgLoc, diag::warn_hlsl_barrier_node_memory_requires_node); + Diags.Report(EntryDecl->getLocation(), + diag::note_hlsl_entry_defined_here); + } + } + + // Return filtered flags. + return MemoryTypeFiltered; +} + +static void DiagnoseSemanticFlags(SourceLocation ArgLoc, uint32_t SemanticFlags, + bool hasVisibleGroup, + bool memAtLeastGroupScope, + bool memAtLeastDeviceScope, + const FunctionDecl *EntryDecl, + DiagnosticsEngine &Diags) { + // If hasVisibleGroup is false, emit error for group flags. + if (!hasVisibleGroup) { + if ((uint32_t)SemanticFlags & + (uint32_t)DXIL::BarrierSemanticFlag::GroupFlags) { + Diags.Report(ArgLoc, + diag::warn_hlsl_barrier_group_semantic_requires_group); + Diags.Report(EntryDecl->getLocation(), + diag::note_hlsl_entry_defined_here); + } + } + + // Error on DeviceScope or GroupScope when memory lacks this scope. + if (!memAtLeastDeviceScope && + ((uint32_t)SemanticFlags & + (uint32_t)DXIL::BarrierSemanticFlag::DeviceScope)) { + Diags.Report(ArgLoc, + diag::warn_hlsl_barrier_no_mem_with_required_device_scope); + Diags.Report(EntryDecl->getLocation(), diag::note_hlsl_entry_defined_here); + } + if (!memAtLeastGroupScope && + ((uint32_t)SemanticFlags & + (uint32_t)DXIL::BarrierSemanticFlag::GroupScope)) { + Diags.Report(ArgLoc, + diag::warn_hlsl_barrier_no_mem_with_required_group_scope); + Diags.Report(EntryDecl->getLocation(), diag::note_hlsl_entry_defined_here); + } +} + +static void DiagnoseReachableBarrier(Sema &S, CallExpr *CE, + const hlsl::ShaderModel *SM, + DXIL::ShaderKind EntrySK, + DXIL::NodeLaunchType NodeLaunchTy, + const FunctionDecl *EntryDecl, + DiagnosticsEngine &Diags) { + FunctionDecl *FD = CE->getDirectCallee(); + DXASSERT(FD->getNumParams() == 2, "otherwise, unknown Barrier overload"); + + // Does shader have visible group? + // Allow exported library functions as well. + bool hasVisibleGroup = ShaderModel::HasVisibleGroup(EntrySK, NodeLaunchTy); + QualType Param0Ty = FD->getParamDecl(0)->getType(); + + // Used when checking scope flags + // Default to true to avoid over-strict diagnostics + bool memAtLeastGroupScope = true; + bool memAtLeastDeviceScope = true; + + if (Param0Ty == + HLSLExternalSource::FromSema(&S)->GetBasicKindType(AR_BASIC_UINT32)) { + // overload: Barrier(uint MemoryTypeFlags, uint SemanticFlags) + uint32_t MemoryTypeFlags = 0; + Expr *MemoryTypeFlagsExpr = CE->getArg(0); + llvm::APSInt MemoryTypeFlagsVal; + if (MemoryTypeFlagsExpr->isIntegerConstantExpr(MemoryTypeFlagsVal, + S.Context)) { + MemoryTypeFlags = MemoryTypeFlagsVal.getLimitedValue(); + MemoryTypeFlags = DiagnoseMemoryFlags(MemoryTypeFlagsExpr->getExprLoc(), + MemoryTypeFlags, hasVisibleGroup, + EntrySK, EntryDecl, Diags); + // Consider group scope if any group flags remain. + memAtLeastGroupScope = 0 != MemoryTypeFlags; + // Consider it device scope if UavMemory or any NodeFlags remain. + memAtLeastDeviceScope = + 0 != (MemoryTypeFlags & ((uint32_t)DXIL::MemoryTypeFlag::UavMemory | + (uint32_t)DXIL::MemoryTypeFlag::NodeFlags)); + } + } else { + DXIL::NodeIOKind IOKind = GetNodeIOType(Param0Ty); + if (IOKind == DXIL::NodeIOKind::Invalid) { + // overload: Barrier(, uint SemanticFlags) + // UAV objects have at least device scope. + DXASSERT(IsHLSLResourceType(Param0Ty), + "otherwise, missed a case for Barrier"); + // mem scope flags already set to true. + } else { + // Must be a record object + // overload: Barrier(, uint SemanticFlags) + // Only record objects specify a record granularity + DXASSERT((uint32_t)IOKind & + (uint32_t)DXIL::NodeIOFlags::RecordGranularityMask, + "otherwise, missed a Node object case for Barrier"); + + DXIL::NodeIOFlags RecordGranularity = (DXIL::NodeIOFlags)( + (uint32_t)IOKind & + (uint32_t)DXIL::NodeIOFlags::RecordGranularityMask); + switch (RecordGranularity) { + case DXIL::NodeIOFlags::ThreadRecord: + memAtLeastGroupScope = false; + LLVM_FALLTHROUGH; + case DXIL::NodeIOFlags::GroupRecord: + memAtLeastDeviceScope = false; + break; + default: + break; + } + } + } + + // All barrier overloads have SemanticFlags as second paramter + uint32_t SemanticFlags = 0; + Expr *SemanticFlagsExpr = CE->getArg(1); + llvm::APSInt SemanticFlagsVal; + if (SemanticFlagsExpr->isIntegerConstantExpr(SemanticFlagsVal, S.Context)) { + SemanticFlags = SemanticFlagsVal.getLimitedValue(); + DiagnoseSemanticFlags(SemanticFlagsExpr->getExprLoc(), SemanticFlags, + hasVisibleGroup, memAtLeastGroupScope, + memAtLeastDeviceScope, EntryDecl, Diags); + } +} + +// Check HLSL member call constraints for used functions. +// locallyVisited is true if this call has been visited already from any other +// entry function. Used to avoid duplicate diagnostics when not dependent on +// entry function (or export function) properties. +void Sema::DiagnoseReachableHLSLCall(CallExpr *CE, const hlsl::ShaderModel *SM, + DXIL::ShaderKind EntrySK, + DXIL::NodeLaunchType NodeLaunchTy, + const FunctionDecl *EntryDecl, + bool locallyVisited) { + FunctionDecl *FD = CE->getDirectCallee(); + if (!FD) + return; + HLSLIntrinsicAttr *IntrinsicAttr = FD->getAttr(); + if (!IntrinsicAttr) + return; + if (!IsBuiltinTable(IntrinsicAttr->getGroup())) + return; + + SourceLocation Loc = CE->getExprLoc(); + hlsl::IntrinsicOp opCode = (IntrinsicOp)IntrinsicAttr->getOpcode(); + switch (opCode) { + case hlsl::IntrinsicOp::MOP_CalculateLevelOfDetail: + case hlsl::IntrinsicOp::MOP_CalculateLevelOfDetailUnclamped: + DiagnoseCalculateLOD(*this, FD, Loc, SM, EntrySK, NodeLaunchTy, EntryDecl, + Diags, locallyVisited); + break; + case hlsl::IntrinsicOp::IOP_Barrier: + DiagnoseReachableBarrier(*this, CE, SM, EntrySK, NodeLaunchTy, EntryDecl, + Diags); + break; + default: + break; + } +} + +///////////////////////////////////////////////////////////////////////////// + bool hlsl::DiagnoseNodeStructArgument(Sema *self, TemplateArgumentLoc ArgLoc, QualType ArgTy, bool &Empty, const FieldDecl *FD) { @@ -13216,11 +13485,19 @@ ValidateAttributeStringArg(S, A, /*validate strings*/ nullptr), A.getAttributeSpellingListIndex()); break; - case AttributeList::AT_HLSLOutputControlPoints: + case AttributeList::AT_HLSLOutputControlPoints: { + // Hull shader output must be between 1 and 32 control points. + int outputControlPoints = ValidateAttributeIntArg(S, A); + if (outputControlPoints < 1 || outputControlPoints > 32) { + S.Diags.Report(A.getLoc(), diag::err_hlsl_controlpoints_size) + << outputControlPoints << A.getRange(); + return; + } declAttr = ::new (S.Context) HLSLOutputControlPointsAttr( - A.getRange(), S.Context, ValidateAttributeIntArg(S, A), + A.getRange(), S.Context, outputControlPoints, A.getAttributeSpellingListIndex()); break; + } case AttributeList::AT_HLSLOutputTopology: declAttr = ::new (S.Context) HLSLOutputTopologyAttr( A.getRange(), S.Context, @@ -15176,6 +15453,88 @@ return QualType(); } +static bool isRelatedDeclMarkedNointerpolation(Expr *E) { + if (!E) + return false; + E = E->IgnoreCasts(); + if (auto *DRE = dyn_cast(E)) + return DRE->getDecl()->hasAttr(); + + if (auto *ME = dyn_cast(E)) + return ME->getMemberDecl()->hasAttr() || + isRelatedDeclMarkedNointerpolation(ME->getBase()); + + if (auto *HVE = dyn_cast(E)) + return isRelatedDeclMarkedNointerpolation(HVE->getBase()); + + if (auto *ASE = dyn_cast(E)) + return isRelatedDeclMarkedNointerpolation(ASE->getBase()); + + return false; +} + +static bool CheckIntrinsicGetAttributeAtVertex(Sema *S, FunctionDecl *FDecl, + CallExpr *TheCall) { + assert(TheCall->getNumArgs() > 0); + auto argument = TheCall->getArg(0)->IgnoreCasts(); + + if (!isRelatedDeclMarkedNointerpolation(argument)) { + S->Diag(argument->getExprLoc(), diag::err_hlsl_parameter_requires_attribute) + << 0 << FDecl->getName() << "nointerpolation"; + return true; + } + + return false; +} + +bool Sema::CheckHLSLIntrinsicCall(FunctionDecl *FDecl, CallExpr *TheCall) { + auto attr = FDecl->getAttr(); + + switch (hlsl::IntrinsicOp(attr->getOpcode())) { + case hlsl::IntrinsicOp::IOP_GetAttributeAtVertex: + // See #hlsl-specs/issues/181. Feature is broken. For SPIR-V we want + // to limit the scope, and fail gracefully in some cases. + if (!getLangOpts().SPIRV) + return false; + // This should never happen for SPIR-V. But on the DXIL side, extension can + // be added by inserting new intrinsics, meaning opcodes can collide with + // existing ones. See the ExtensionTest.EvalAttributeCollision test. + assert(FDecl->getName() == "GetAttributeAtVertex"); + return CheckIntrinsicGetAttributeAtVertex(this, FDecl, TheCall); + default: + break; + } + + return false; +} + +bool Sema::CheckHLSLFunctionCall(FunctionDecl *FDecl, CallExpr *TheCall) { + if (hlsl::IsIntrinsicOp(FDecl) && CheckHLSLIntrinsicCall(FDecl, TheCall)) + return true; + + // See #hlsl-specs/issues/181. Feature is broken. For SPIR-V we want + // to limit the scope, and fail gracefully in some cases. + if (!getLangOpts().SPIRV) + return false; + + bool error = false; + for (unsigned i = 0; i < FDecl->getNumParams(); i++) { + assert(i < TheCall->getNumArgs()); + + if (!FDecl->getParamDecl(i)->hasAttr()) + continue; + + if (!isRelatedDeclMarkedNointerpolation(TheCall->getArg(i))) { + Diag(TheCall->getArg(i)->getExprLoc(), + diag::err_hlsl_parameter_requires_attribute) + << i << FDecl->getName() << "nointerpolation"; + error = true; + } + } + + return error; +} + namespace hlsl { static bool nodeInputIsCompatible(DXIL::NodeIOKind IOType, @@ -15295,6 +15654,21 @@ return; } +void DiagnoseVertexEntry(Sema &S, FunctionDecl *FD, llvm::StringRef StageName) { + for (auto *annotation : FD->getUnusualAnnotations()) { + if (auto *sema = dyn_cast(annotation)) { + if (sema->SemanticName.equals_lower("POSITION") || + sema->SemanticName.equals_lower("POSITION0")) { + S.Diags.Report(FD->getLocation(), + diag::warn_hlsl_semantic_attribute_position_misuse_hint) + << sema->SemanticName; + } + } + } + + return; +} + void DiagnoseMeshEntry(Sema &S, FunctionDecl *FD, llvm::StringRef StageName) { if (!(FD->getAttr())) @@ -15325,6 +15699,9 @@ if (!(FD->getAttr())) S.Diags.Report(FD->getLocation(), diag::err_hlsl_missing_attr) << StageName << "outputtopology"; + if (!(FD->getAttr())) + S.Diags.Report(FD->getLocation(), diag::err_hlsl_missing_attr) + << StageName << "outputcontrolpoints"; for (const auto *param : FD->params()) { if (!hlsl::IsHLSLInputPatchType(param->getType())) @@ -15662,9 +16039,11 @@ } } } - S.DiagnoseSVForLaunchType(FD, NodeLaunchTy); } } + + DiagnoseSVForLaunchType(FD, NodeLaunchTy, S.Diags); + return; } @@ -15690,7 +16069,8 @@ // if this FD isn't the entry point, then we shouldn't add // a shader attribute to this decl, so just return - if (EntryPointName != FD->getIdentifier()->getName()) { + if (!FD->getIdentifier() || + EntryPointName != FD->getIdentifier()->getName()) { return; } @@ -15807,8 +16187,9 @@ DiagnoseEntryAttrAllowedOnStage(&S, FD, Stage); switch (Stage) { - case DXIL::ShaderKind::Pixel: case DXIL::ShaderKind::Vertex: + return DiagnoseVertexEntry(S, FD, StageName); + case DXIL::ShaderKind::Pixel: case DXIL::ShaderKind::Library: case DXIL::ShaderKind::Invalid: return; diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSLDiagnoseTU.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSLDiagnoseTU.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSLDiagnoseTU.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaHLSLDiagnoseTU.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -302,24 +302,26 @@ return nullptr; } -class HLSLMethodCallDiagnoseVisitor - : public RecursiveASTVisitor { +class HLSLCallDiagnoseVisitor + : public RecursiveASTVisitor { public: - explicit HLSLMethodCallDiagnoseVisitor( + explicit HLSLCallDiagnoseVisitor( Sema *S, const hlsl::ShaderModel *SM, DXIL::ShaderKind EntrySK, - const FunctionDecl *EntryDecl, - std::set &DiagnosedCalls) - : sema(S), SM(SM), EntrySK(EntrySK), EntryDecl(EntryDecl), - DiagnosedCalls(DiagnosedCalls) {} - - bool VisitCXXMemberCallExpr(CXXMemberCallExpr *CE) { - // Skip if already diagnosed. - if (DiagnosedCalls.count(CE)) - return true; - DiagnosedCalls.insert(CE); + DXIL::NodeLaunchType NodeLaunchTy, const FunctionDecl *EntryDecl, + llvm::SmallPtrSetImpl &DiagnosedCalls) + : sema(S), SM(SM), EntrySK(EntrySK), NodeLaunchTy(NodeLaunchTy), + EntryDecl(EntryDecl), DiagnosedCalls(DiagnosedCalls) {} + + bool VisitCallExpr(CallExpr *CE) { + // Set flag if already diagnosed from another entry, allowing some + // diagnostics to be skipped when they are not dependent on entry + // properties. + bool locallyVisited = DiagnosedCalls.count(CE) != 0; + if (!locallyVisited) + DiagnosedCalls.insert(CE); - sema->DiagnoseReachableHLSLMethodCall(CE->getMethodDecl(), CE->getExprLoc(), - SM, EntrySK, EntryDecl); + sema->DiagnoseReachableHLSLCall(CE, SM, EntrySK, NodeLaunchTy, EntryDecl, + locallyVisited); return true; } @@ -329,8 +331,9 @@ clang::Sema *sema; const hlsl::ShaderModel *SM; DXIL::ShaderKind EntrySK; + DXIL::NodeLaunchType NodeLaunchTy; const FunctionDecl *EntryDecl; - std::set &DiagnosedCalls; + llvm::SmallPtrSetImpl &DiagnosedCalls; }; std::optional @@ -344,6 +347,25 @@ return std::nullopt; } +std::optional +getFunctionOutputPatchCount(const FunctionDecl *function) { + for (const auto *param : function->params()) { + if (!hlsl::IsHLSLOutputPatchType(param->getType())) + continue; + return hlsl::GetHLSLOutputPatchCount(param->getType()); + } + + return std::nullopt; +} + +std::optional +getFunctionOutputControlPointsCount(const FunctionDecl *function) { + if (const auto *Attr = function->getAttr()) { + return Attr->getCount(); + } + return std::nullopt; +} + } // namespace void hlsl::DiagnoseTranslationUnit(clang::Sema *self) { @@ -407,7 +429,7 @@ hlsl::ShaderModel::GetByName(self->getLangOpts().HLSLProfile.c_str()); std::set DiagnosedDecls; - std::set DiagnosedCalls; + llvm::SmallPtrSet DiagnosedCalls; // for each FDecl, check for recursion for (FunctionDecl *FDecl : FDeclsToCheck) { CallGraphWithRecurseGuard callGraph; @@ -475,41 +497,49 @@ } } - auto hullPatchCount = getFunctionInputPatchCount(pPatchFnDecl); - auto functionPatchCount = getFunctionInputPatchCount(FDecl); - if (hullPatchCount.has_value() && functionPatchCount.has_value() && - hullPatchCount.value() != functionPatchCount.value()) { - self->Diag(pPatchFnDecl->getSourceRange().getBegin(), - diag::err_hlsl_patch_input_size_mismatch) - << functionPatchCount.value() << hullPatchCount.value(); + // Input/Output control point validation. + { + auto hullPatchCount = getFunctionInputPatchCount(pPatchFnDecl); + auto functionPatchCount = getFunctionInputPatchCount(FDecl); + if (hullPatchCount.has_value() && functionPatchCount.has_value() && + hullPatchCount.value() != functionPatchCount.value()) { + self->Diag(pPatchFnDecl->getSourceRange().getBegin(), + diag::err_hlsl_patch_size_mismatch) + << "input" << functionPatchCount.value() + << hullPatchCount.value(); + } + } + { + auto hullPatchCount = getFunctionOutputPatchCount(pPatchFnDecl); + auto functionPatchCount = getFunctionOutputControlPointsCount(FDecl); + if (hullPatchCount.has_value() && functionPatchCount.has_value() && + hullPatchCount.value() != functionPatchCount.value()) { + self->Diag(pPatchFnDecl->getSourceRange().getBegin(), + diag::err_hlsl_patch_size_mismatch) + << "output" << functionPatchCount.value() + << hullPatchCount.value(); + } } } DXIL::ShaderKind EntrySK = shaderModel->GetKind(); + DXIL::NodeLaunchType NodeLaunchTy = DXIL::NodeLaunchType::Invalid; if (EntrySK == DXIL::ShaderKind::Library) { // For library, check if the exported function is entry with shader // attribute. if (const auto *Attr = FDecl->getAttr()) EntrySK = ShaderModel::KindFromFullName(Attr->getStage()); + if (EntrySK == DXIL::ShaderKind::Node) + if (const auto *pAttr = FDecl->getAttr()) + NodeLaunchTy = + ShaderModel::NodeLaunchTypeFromName(pAttr->getLaunchType()); } // Visit all visited functions in call graph to collect illegal intrinsic // calls. for (FunctionDecl *FD : callGraph.GetVisitedFunctions()) { - HLSLMethodCallDiagnoseVisitor Visitor(self, shaderModel, EntrySK, FDecl, - DiagnosedCalls); + HLSLCallDiagnoseVisitor Visitor(self, shaderModel, EntrySK, NodeLaunchTy, + FDecl, DiagnosedCalls); Visitor.TraverseDecl(FD); - - // diagnose any node functions that have incompatible launch types with - // the present SV semantics on each parameter. - if (EntrySK == DXIL::ShaderKind::Node) { - if (const auto *NodeLaunchAttr = - FDecl->getAttr()) { - llvm::StringRef NodeLaunchTyStr = NodeLaunchAttr->getLaunchType(); - hlsl::DXIL::NodeLaunchType NodeLaunchTy = - ShaderModel::NodeLaunchTypeFromName(NodeLaunchTyStr); - Visitor.getSema()->DiagnoseSVForLaunchType(FD, NodeLaunchTy); - } - } } } } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaOverload.cpp chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaOverload.cpp --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaOverload.cpp 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/lib/Sema/SemaOverload.cpp 2024-05-21 22:47:21.000000000 +0000 @@ -11922,10 +11922,6 @@ if (Method != FoundDecl.getDecl() && DiagnoseUseOfDecl(Method, UnresExpr->getNameLoc())) return ExprError(); - // HLSL Change Start - Check method constraints - if (DiagnoseHLSLMethodCall(Method, MemExprE->getLocStart())) - return ExprError(); - // HLSL Change End break; case OR_No_Viable_Function: diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/operators/swizzle/indexSwizzledBoolVec.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/operators/swizzle/indexSwizzledBoolVec.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/operators/swizzle/indexSwizzledBoolVec.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/operators/swizzle/indexSwizzledBoolVec.hlsl 2024-05-21 22:47:21.000000000 +0000 @@ -0,0 +1,30 @@ +// Test indexing a swizzled bool vector +// RUN: %dxc -fcgl -T cs_6_0 %s | FileCheck %s + +// This was asserting in Instructions.cpp with: +// void llvm::StoreInst::AssertOK(): Assertion `getOperand(0)->getType() == cast(getOperand(1)->getType())->getElementType() && "Ptr must be a pointer to Val type!"' failed. + +// Make sure load of i32 gets truncated to i1 when indexing bool vectors +// CHECK: [[TMP:%[a-z0-9\.]+]] = alloca <2 x i1> +// CHECK: [[VA0:%[a-z0-9\.]+]] = getelementptr <2 x i1>, <2 x i1>* [[TMP]], i32 0, i32 0, +// CHECK-NEXT: [[VA1:%[a-z0-9\.]+]] = load i32, i32* getelementptr inbounds (<4 x i32>, <4 x i32>* @"\01?v_bool4@?1??main@@YAXXZ@3V?$vector@_N$03@@B", i32 0, i32 2), +// CHECK-NEXT: [[VA2:%[a-z0-9\.]+]] = trunc i32 [[VA1]] to i1, +// CHECK-NEXT: store i1 [[VA2]], i1* [[VA0]], +// CHECK-NEXT: [[VB0:%[a-z0-9\.]+]] = getelementptr <2 x i1>, <2 x i1>* [[TMP]], i32 0, i32 1, +// CHECK-NEXT: [[VB1:%[a-z0-9\.]+]] = load i32, i32* getelementptr inbounds (<4 x i32>, <4 x i32>* @"\01?v_bool4@?1??main@@YAXXZ@3V?$vector@_N$03@@B", i32 0, i32 3), +// CHECK-NEXT: [[VB2:%[a-z0-9\.]+]] = trunc i32 [[VB1]] to i1, +// CHECK-NEXT: store i1 [[VB2]], i1* [[VB0]], + + +cbuffer cbuffer_tint_symbol_3 : register(b0) { + uint4 global_uint4[1]; +}; + +[numthreads(1, 1, 1)] +void main() { + const bool4 v_bool4 = bool4(true, true, true, true); + const uint gx = global_uint4[0].x; + if (v_bool4.zw[gx] == 0) { + GroupMemoryBarrierWithGroupSync(); + } +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/semantic.hull-output.size-mismatch.hs.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/semantic.hull-output.size-mismatch.hs.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/semantic.hull-output.size-mismatch.hs.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenDXIL/semantic.hull-output.size-mismatch.hs.hlsl 2024-05-21 22:47:21.000000000 +0000 @@ -0,0 +1,22 @@ +// RUN: %dxc -T hs_6_0 -E main %s -verify + + +struct ControlPoint { float4 position : POSITION; }; + +struct HullPatchOut { + float edge [3] : SV_TessFactor; + float inside : SV_InsideTessFactor; +}; + +HullPatchOut HullConst (InputPatch v, OutputPatch outpoints) { /* expected-error{{Patch constant function's output patch input should have 5 elements, but has 2.}} */ + return (HullPatchOut)0; +} + +[domain("tri")] +[partitioning("fractional_odd")] +[outputtopology("triangle_cw")] +[patchconstantfunc("HullConst")] +[outputcontrolpoints(5)] +ControlPoint main(InputPatch v, uint id : SV_OutputControlPointID) { + return v[id]; +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.dot2add.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.dot2add.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.dot2add.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.dot2add.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,53 @@ +// RUN: %dxc -E main -T ps_6_4 -enable-16bit-types -spirv -O0 %s 2>&1 | FileCheck %s + +float main() : SV_Target { +// CHECK: warning: conversion from larger type 'float' to smaller type 'vector', possible loss of data +// CHECK: warning: conversion from larger type 'int4' to smaller type 'vector', possible loss of data +// CHECK: warning: implicit truncation of vector type + float res = 0; + + half2 input1A; + half2 input1B; + float acc1; +// CHECK: [[input1A:%[0-9]+]] = OpLoad %v2half %input1A +// CHECK: [[input1B:%[0-9]+]] = OpLoad %v2half %input1B +// CHECK: [[acc1:%[0-9]+]] = OpLoad %float %acc1 +// CHECK: [[dot1_0:%[0-9]+]] = OpDot %half [[input1A]] [[input1B]] +// CHECK: [[dot1:%[0-9]+]] = OpFConvert %float [[dot1_0]] +// CHECK: [[res1:%[0-9]+]] = OpFAdd %float [[dot1]] [[acc1]] + res += dot2add(input1A, input1B, acc1); + + half4 input2; + int acc2; +// CHECK: [[input2:%[0-9]+]] = OpLoad %v4half %input2 +// CHECK: [[input2A:%[0-9]+]] = OpVectorShuffle %v2half [[input2]] [[input2]] 0 1 +// CHECK: [[input2_1:%[0-9]+]] = OpLoad %v4half %input2 +// CHECK: [[input2B:%[0-9]+]] = OpVectorShuffle %v2half [[input2_1]] [[input2_1]] 2 3 +// CHECK: [[acc2_0:%[0-9]+]] = OpLoad %int %acc2 +// CHECK: [[acc2:%[0-9]+]] = OpConvertSToF %float [[acc2_0]] +// CHECK: [[dot2_0:%[0-9]+]] = OpDot %half [[input2A]] [[input2B]] +// CHECK: [[dot2:%[0-9]+]] = OpFConvert %float [[dot2_0]] +// CHECK: [[res2:%[0-9]+]] = OpFAdd %float [[dot2]] [[acc2]] + res += dot2add(input2.xy, input2.zw, acc2); + + float input3A; + int4 input3B; + half acc3; +// CHECK: [[input3A_1:%[0-9]+]] = OpLoad %float %input3A +// CHECK: [[input3A_2:%[0-9]+]] = OpFConvert %half [[input3A_1]] +// CHECK: [[input3A:%[0-9]+]] = OpCompositeConstruct %v2half [[input3A_2]] [[input3A_2]] +// CHECK: [[input3B_1:%[0-9]+]] = OpLoad %v4int %input3B +// CHECK: [[input3B_2:%[0-9]+]] = OpCompositeExtract %int [[input3B_1]] 0 +// CHECK: [[input3B_3:%[0-9]+]] = OpCompositeExtract %int [[input3B_1]] 1 +// CHECK: [[input3B_4:%[0-9]+]] = OpCompositeConstruct %v2int [[input3B_2]] [[input3B_3]] +// CHECK: [[input3B_5:%[0-9]+]] = OpSConvert %v2short [[input3B_4]] +// CHECK: [[input3B:%[0-9]+]] = OpConvertSToF %v2half [[input3B_5]] +// CHECK: [[acc3_1:%[0-9]+]] = OpLoad %half %acc3 +// CHECK: [[acc3:%[0-9]+]] = OpFConvert %float [[acc3_1]] +// CHECK: [[dot3_1:%[0-9]+]] = OpDot %half [[input3A]] [[input3B]] +// CHECK: [[dot3:%[0-9]+]] = OpFConvert %float [[dot3_1]] +// CHECK: [[res3:%[0-9]+]] = OpFAdd %float [[dot3]] [[acc3]] + res += dot2add(input3A, input3B, acc3); + + return res; +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.cbuf.var.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.cbuf.var.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.cbuf.var.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.cbuf.var.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,19 @@ +// RUN: %dxc -T ps_6_2 -E main -spirv %s | FileCheck %s + +// CHECK: OpDecorate %in_var_A PerVertexKHR +// CHECK-DAG: %type_constants = OpTypeStruct %uint +// CHECK-DAG: %_ptr_Uniform_type_constants = OpTypePointer Uniform %type_constants +// CHECK-DAG: %_arr_v3float_uint_3 = OpTypeArray %v3float %uint_3 +// CHECK-DAG: %_ptr_Input__arr_v3float_uint_3 = OpTypePointer Input %_arr_v3float_uint_3 +cbuffer constants : register(b0) +{ + uint idx; +} + +float4 main(nointerpolation float3 a : A) : SV_Target +{ +// CHECK-DAG: %constants = OpVariable %_ptr_Uniform_type_constants Uniform +// CHECK-DAG: %in_var_A = OpVariable %_ptr_Input__arr_v3float_uint_3 Input + float value = GetAttributeAtVertex(a, 0)[idx]; + return value.xxxx; +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.hlsl 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -4,7 +4,7 @@ float4 a : COLOR; }; -float compute(float4 a) { +float compute(nointerpolation float4 a) { return GetAttributeAtVertex(a, 2)[0]; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.neg.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.neg.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.neg.hlsl 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/intrinsics.get-attribute-at-vertex.s.funcParam.neg.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -1,16 +1,17 @@ -// RUN: not %dxc -T ps_6_1 -E main %s -spirv 2>&1 | FileCheck %s +// RUN: %dxc -T ps_6_1 -E main %s -spirv -verify struct S { float4 a : COLOR; }; -float compute(float4 a) { +float compute(nointerpolation float4 a) { return GetAttributeAtVertex(a, 2)[0]; } float4 main(nointerpolation S s, float4 b : COLOR2) : SV_TARGET { - return float4(0, 0, compute(b), compute(s.a)); + return float4(0, + compute(b), // expected-error{{parameter 0 of compute must have a 'nointerpolation' attribute}} + compute(b), // expected-error{{parameter 0 of compute must have a 'nointerpolation' attribute}} + compute(s.a)); } - -// CHECK: error: Function 'compute' could only use noninterpolated variable as input. \ No newline at end of file diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.pushconstant.access.bitfield.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.pushconstant.access.bitfield.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.pushconstant.access.bitfield.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.pushconstant.access.bitfield.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,21 @@ +// RUN: %dxc -T cs_6_0 -E main -spirv -fcgl %s + +struct S { + uint32_t a : 1; + uint32_t b : 1; +}; +// CHECK-DAG: [[S:[a-zA-Z0-9_]+]] = OpTypeStruct %uint +// CHECK-DAG: [[ptr_S:[a-zA-Z0-9_]+]] = OpTypePointer PushConstant [[S]] +// CHECK-DAG: [[ptr_uint:[a-zA-Z0-9_]+]] = OpTypePointer PushConstant %uint + +[[vk::push_constant]] S buffer; +// CHECK-DAG: %buffer = OpVariable [[ptr_S]] PushConstant + +[numthreads(1, 1, 1)] +void main() { + uint32_t v = buffer.b; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain [[ptr_uint]] %buffer %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %uint [[ptr]] +// CHECK: [[tmp2:%[0-9]+]] = OpBitFieldUExtract %uint [[tmp]] %uint_1 %uint_1 +// CHECK: OpStore %v [[tmp2]] +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.struct.access.bitfield.sized.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.struct.access.bitfield.sized.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.struct.access.bitfield.sized.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.struct.access.bitfield.sized.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,148 @@ +// RUN: %dxc -T cs_6_2 -E main -spirv -fcgl -enable-16bit-types %s | FileCheck %s + +struct S1 { + uint64_t f1 : 32; + uint64_t f2 : 1; +}; +// CHECK-DAG: %S1 = OpTypeStruct %ulong + +struct S2 { + uint16_t f1 : 4; + uint16_t f2 : 5; +}; +// CHECK-DAG: %S2 = OpTypeStruct %ushort + +struct S3 { + uint64_t f1 : 45; + uint64_t f2 : 10; + uint16_t f3 : 7; + uint32_t f4 : 5; +}; +// CHECK-DAG: %S3 = OpTypeStruct %ulong %ushort %uint + +struct S4 { + int64_t f1 : 32; + int64_t f2 : 1; +}; +// CHECK-DAG: %S4 = OpTypeStruct %long + +[numthreads(1, 1, 1)] +void main() { + S1 s1; + s1.f1 = 3; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_ulong %s1 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %ulong [[ptr]] +// 0xffffffff00000000 +// CHECK: [[dst:%[0-9]+]] = OpBitwiseAnd %ulong [[tmp]] %ulong_18446744069414584320 +// CHECK: [[val:%[0-9]+]] = OpBitcast %ulong %ulong_3 +// CHECK: [[tmp:%[0-9]+]] = OpShiftLeftLogical %ulong [[val]] %uint_0 +// 0x00000000ffffffff +// CHECK: [[src:%[0-9]+]] = OpBitwiseAnd %ulong [[tmp]] %ulong_4294967295 +// CHECK: [[mix:%[0-9]+]] = OpBitwiseOr %ulong [[dst]] [[src]] +// CHECK: OpStore [[ptr]] [[mix]] + + s1.f2 = 1; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_ulong %s1 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %ulong [[ptr]] +// 0xfffffffeffffffff +// CHECK: [[dst:%[0-9]+]] = OpBitwiseAnd %ulong [[tmp]] %ulong_18446744069414584319 +// CHECK: [[val:%[0-9]+]] = OpBitcast %ulong %ulong_1 +// CHECK: [[tmp:%[0-9]+]] = OpShiftLeftLogical %ulong [[val]] %uint_32 +// 0x0000000100000000 +// CHECK: [[src:%[0-9]+]] = OpBitwiseAnd %ulong [[tmp]] %ulong_4294967296 +// CHECK: [[mix:%[0-9]+]] = OpBitwiseOr %ulong [[dst]] [[src]] +// CHECK: OpStore [[ptr]] [[mix]] + + S2 s2; + s2.f1 = 2; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_ushort %s2 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %ushort [[ptr]] +// 0xfff0 +// CHECK: [[dst:%[0-9]+]] = OpBitwiseAnd %ushort [[tmp]] %ushort_65520 +// CHECK: [[val:%[0-9]+]] = OpBitcast %ushort %ushort_2 +// CHECK: [[tmp:%[0-9]+]] = OpShiftLeftLogical %ushort [[val]] %uint_0 +// 0x000f +// CHECK: [[src:%[0-9]+]] = OpBitwiseAnd %ushort [[tmp]] %ushort_15 +// CHECK: [[mix:%[0-9]+]] = OpBitwiseOr %ushort [[dst]] [[src]] +// CHECK: OpStore [[ptr]] [[mix]] + + s2.f2 = 3; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_ushort %s2 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %ushort [[ptr]] +// 0xfe0f +// CHECK: [[dst:%[0-9]+]] = OpBitwiseAnd %ushort [[tmp]] %ushort_65039 +// CHECK: [[val:%[0-9]+]] = OpBitcast %ushort %ushort_3 +// CHECK: [[tmp:%[0-9]+]] = OpShiftLeftLogical %ushort [[val]] %uint_4 +// 0x01f0 +// CHECK: [[src:%[0-9]+]] = OpBitwiseAnd %ushort [[tmp]] %ushort_496 +// CHECK: [[mix:%[0-9]+]] = OpBitwiseOr %ushort [[dst]] [[src]] +// CHECK: OpStore [[ptr]] [[mix]] + + S3 s3; + s3.f1 = 5; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_ulong %s3 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %ulong [[ptr]] +// 0xffffe00000000000 +// CHECK: [[dst:%[0-9]+]] = OpBitwiseAnd %ulong [[tmp]] %ulong_18446708889337462784 +// CHECK: [[val:%[0-9]+]] = OpBitcast %ulong %ulong_5 +// CHECK: [[tmp:%[0-9]+]] = OpShiftLeftLogical %ulong [[val]] %uint_0 +// 0x00001fffffffffff +// CHECK: [[src:%[0-9]+]] = OpBitwiseAnd %ulong [[tmp]] %ulong_35184372088831 +// CHECK: [[mix:%[0-9]+]] = OpBitwiseOr %ulong [[dst]] [[src]] +// CHECK: OpStore [[ptr]] [[mix]] + + s3.f2 = 6; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_ulong %s3 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %ulong [[ptr]] +// 0xff801fffffffffff +// CHECK: [[dst:%[0-9]+]] = OpBitwiseAnd %ulong [[tmp]] %ulong_18410750461062676479 +// CHECK: [[val:%[0-9]+]] = OpBitcast %ulong %ulong_6 +// CHECK: [[tmp:%[0-9]+]] = OpShiftLeftLogical %ulong [[val]] %uint_45 +// 0x007fe00000000000 +// CHECK: [[src:%[0-9]+]] = OpBitwiseAnd %ulong [[tmp]] %ulong_35993612646875136 +// CHECK: [[mix:%[0-9]+]] = OpBitwiseOr %ulong [[dst]] [[src]] +// CHECK: OpStore [[ptr]] [[mix]] + + s3.f3 = 7; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_ushort %s3 %int_1 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %ushort [[ptr]] +// 0xff80 +// CHECK: [[dst:%[0-9]+]] = OpBitwiseAnd %ushort [[tmp]] %ushort_65408 +// CHECK: [[val:%[0-9]+]] = OpBitcast %ushort %ushort_7 +// CHECK: [[tmp:%[0-9]+]] = OpShiftLeftLogical %ushort [[val]] %uint_0 +// 0x007f +// CHECK: [[src:%[0-9]+]] = OpBitwiseAnd %ushort [[tmp]] %ushort_127 +// CHECK: [[mix:%[0-9]+]] = OpBitwiseOr %ushort [[dst]] [[src]] +// CHECK: OpStore [[ptr]] [[mix]] + + s3.f4 = 8; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_uint %s3 %int_2 +// CHECK: [[val:%[0-9]+]] = OpLoad %uint [[ptr]] +// CHECK: [[tmp:%[0-9]+]] = OpBitFieldInsert %uint [[val]] %uint_8 %uint_0 %uint_5 +// CHECK: OpStore [[ptr]] [[tmp]] + + S4 s4; + s4.f1 = 3; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_long %s4 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %long [[ptr]] +// 0xffffffff00000000 +// CHECK: [[dst:%[0-9]+]] = OpBitwiseAnd %long [[tmp]] %ulong_18446744069414584320 +// CHECK: [[val:%[0-9]+]] = OpBitcast %long %long_3 +// CHECK: [[tmp:%[0-9]+]] = OpShiftLeftLogical %long [[val]] %uint_0 +// 0x00000000ffffffff +// CHECK: [[src:%[0-9]+]] = OpBitwiseAnd %long [[tmp]] %ulong_4294967295 +// CHECK: [[mix:%[0-9]+]] = OpBitwiseOr %long [[dst]] [[src]] +// CHECK: OpStore [[ptr]] [[mix]] + + s4.f2 = 1; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Function_long %s4 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %long [[ptr]] +// 0xfffffffeffffffff +// CHECK: [[dst:%[0-9]+]] = OpBitwiseAnd %long [[tmp]] %ulong_18446744069414584319 +// CHECK: [[val:%[0-9]+]] = OpBitcast %long %long_1 +// CHECK: [[tmp:%[0-9]+]] = OpShiftLeftLogical %long [[val]] %uint_32 +// 0x0000000100000000 +// CHECK: [[src:%[0-9]+]] = OpBitwiseAnd %long [[tmp]] %ulong_4294967296 +// CHECK: [[mix:%[0-9]+]] = OpBitwiseOr %long [[dst]] [[src]] +// CHECK: OpStore [[ptr]] [[mix]] +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.array.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.array.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.array.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.array.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,23 @@ +// RUN: %dxc -T cs_6_0 -E main -fcgl -spirv %s | FileCheck %s + +// CHECK-DAG: %PTE = OpTypeStruct %uint +// CHECK-DAG: %_runtimearr_PTE = OpTypeRuntimeArray %PTE +// CHECK-DAG: OpDecorate %_runtimearr_PTE ArrayStride 4 +// CHECK-DAG: [[buffer_type:%[a-zA-Z0-9_]+]] = OpTypeStruct %_runtimearr_PTE +// CHECK-DAG: [[buffer_ptr:%[a-zA-Z0-9_]+]] = OpTypePointer Uniform [[buffer_type]] +struct PTE { + uint valid : 1; + uint dirty : 1; +}; + +RWStructuredBuffer bad; +// CHECK: %bad = OpVariable %_ptr_Uniform_type_RWStructuredBuffer_PTE Uniform + +[numthreads(1, 1, 1)] +void main() { +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain %_ptr_Uniform_uint %bad %int_0 %uint_1 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %uint [[ptr]] +// CHECK: [[bit:%[0-9]+]] = OpBitFieldInsert %uint [[tmp]] %uint_1 %uint_1 %uint_1 +// CHECK: OpStore [[ptr]] [[bit]] + bad[1].dirty = 1; +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/op.uniform.access.bitfield.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,23 @@ +// RUN: %dxc -T cs_6_0 -E main -spirv -fcgl %s + +struct S { + uint32_t a : 1; + uint32_t b : 1; +}; +// CHECK-DAG: [[S:[a-zA-Z0-9_]+]] = OpTypeStruct %uint +// CHECK-DAG: [[arr_S:[a-zA-Z0-9_]+]] = OpTypeRuntimeArray [[S]] +// CHECK-DAG: [[type_buff:[a-zA-Z0-9_]+]] = OpTypeStruct [[arr_S]] +// CHECK-DAG: [[ptr_uint_uniform:[a-zA-Z0-9_]+]] = OpTypePointer Uniform %uint +// CHECK-DAG: [[ptr_buff:[a-zA-Z0-9_]+]] = OpTypePointer Uniform [[type_buff]] + +RWStructuredBuffer rwbuffer; +// CHECK-DAG: %rwbuffer = OpVariable [[ptr_buff]] Uniform + +[numthreads(1, 1, 1)] +void main() { + uint32_t u = rwbuffer[2].b; +// CHECK: [[ptr:%[0-9]+]] = OpAccessChain [[ptr_uint_uniform]] %rwbuffer %int_0 %uint_2 %int_0 +// CHECK: [[tmp:%[0-9]+]] = OpLoad %uint [[ptr]] +// CHECK: [[tmp2:%[0-9]+]] = OpBitFieldUExtract %uint [[tmp]] %uint_1 %uint_1 +// CHECK: OpStore %u [[tmp2]] +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.error.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.error.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.error.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.error.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,7 @@ +// RUN: not %dxc -E main -T ps_6_2 -denorm bad -spirv %s 2>&1 | FileCheck %s + +// CHECK: dxc failed : Unsupported value 'bad' for denorm option. + +float4 main(float4 col : COL) : SV_Target { + return col; +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/opt.denorm.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,24 @@ +// RUN: %dxc -E main -T ps_6_2 -denorm preserve -spirv %s | FileCheck --check-prefixes=CHECK-PRE %s +// RUN: %dxc -E main -T ps_6_2 -denorm preserve -spirv -fspv-target-env=vulkan1.2 %s | FileCheck --check-prefixes=CHECK-PRE-VK12 %s +// RUN: %dxc -E main -T ps_6_2 -denorm ftz -spirv %s | FileCheck --check-prefixes=CHECK-FTZ %s +// RUN: %dxc -E main -T ps_6_2 -denorm any -spirv %s | FileCheck --check-prefixes=CHECK-DEFAULT %s +// RUN: %dxc -E main -T ps_6_2 -spirv %s | FileCheck --check-prefixes=CHECK-DEFAULT %s + +// CHECK-PRE: OpCapability DenormPreserve +// CHECK-PRE: OpExtension "SPV_KHR_float_controls" +// CHECK-PRE: OpExecutionMode %main DenormPreserve 32 + +// CHECK-PRE-VK12: OpCapability DenormPreserve +// CHECK-PRE-VK12-NOT: OpExtension "SPV_KHR_float_controls" +// CHECK-PRE-VK12: OpExecutionMode %main DenormPreserve 32 + +// CHECK-FTZ: OpCapability DenormFlushToZero +// CHECK-FTZ: OpExtension "SPV_KHR_float_controls" +// CHECK-FTZ: OpExecutionMode %main DenormFlushToZero 32 + +// CHECK-DEFAULT-NOT: OpCapability DenormPreserve +// CHECK-DEFAULT-NOT: OpExtension "SPV_KHR_float_controls" +// CHECK-DEFAULT-NOT: OpExecutionMode %main Denorm +float4 main(float4 col : COL) : SV_Target { + return col; +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-input.size-mismatch.hs.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-input.size-mismatch.hs.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-input.size-mismatch.hs.hlsl 2024-05-15 21:48:14.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-input.size-mismatch.hs.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -16,7 +16,7 @@ [partitioning("fractional_odd")] [outputtopology("triangle_cw")] [patchconstantfunc("HullConst")] -[outputcontrolpoints(0)] +[outputcontrolpoints(1)] ControlPoint main(InputPatch v, uint id : SV_OutputControlPointID) { return v[id]; } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-output.size-mismatch.hs.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-output.size-mismatch.hs.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-output.size-mismatch.hs.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/semantic.hull-output.size-mismatch.hs.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,22 @@ +// RUN: %dxc -T hs_6_0 -E main %s -spirv -verify + + +struct ControlPoint { float4 position : POSITION; }; + +struct HullPatchOut { + float edge [3] : SV_TessFactor; + float inside : SV_InsideTessFactor; +}; + +HullPatchOut HullConst (InputPatch v, OutputPatch outpoints) { /* expected-error{{Patch constant function's output patch input should have 5 elements, but has 2.}} */ + return (HullPatchOut)0; +} + +[domain("tri")] +[partitioning("fractional_odd")] +[outputtopology("triangle_cw")] +[patchconstantfunc("HullConst")] +[outputcontrolpoints(5)] +ControlPoint main(InputPatch v, uint id : SV_OutputControlPointID) { + return v[id]; +} diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/vk.layout.struct.bitfield.array.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/vk.layout.struct.bitfield.array.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/vk.layout.struct.bitfield.array.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/CodeGenSPIRV/vk.layout.struct.bitfield.array.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,154 @@ +// RUN: %dxc -T cs_6_0 -E main -fcgl -spirv %s | FileCheck %s + +struct S1 { + uint f1 : 1; + uint f2 : 1; +}; +RWStructuredBuffer b1; +// CHECK-DAG: OpDecorate %_runtimearr_S1 ArrayStride 4 +// CHECK-DAG: %_runtimearr_S1 = OpTypeRuntimeArray %S1 +// CHECK-DAG: %S1 = OpTypeStruct %uint +// CHECK-DAG: OpMemberDecorate %S1 0 Offset 0 +// CHECK-NOT-DAG: OpMemberDecorate %S1 1 + +struct S2 { + uint f1 : 31; + uint f2 : 1; +}; +RWStructuredBuffer b2; +// CHECK-DAG: OpDecorate %_runtimearr_S2 ArrayStride 4 +// CHECK-DAG: %_runtimearr_S2 = OpTypeRuntimeArray %S2 +// CHECK-DAG: %S2 = OpTypeStruct %uint +// CHECK-DAG: OpMemberDecorate %S2 0 Offset 0 +// CHECK-NOT-DAG: OpMemberDecorate %S2 1 + +struct S3 { + uint f1 : 1; + uint f2 : 31; +}; +RWStructuredBuffer b3; +// CHECK-DAG: OpDecorate %_runtimearr_S3 ArrayStride 4 +// CHECK-DAG: %_runtimearr_S3 = OpTypeRuntimeArray %S3 +// CHECK-DAG: %S3 = OpTypeStruct %uint +// CHECK-DAG: OpMemberDecorate %S3 0 Offset 0 +// CHECK-NOT-DAG: OpMemberDecorate %S3 1 + +struct S4 { + uint f1 : 1; + uint f2 : 32; +}; +RWStructuredBuffer b4; +// CHECK-DAG: OpDecorate %_runtimearr_S4 ArrayStride 8 +// CHECK-DAG: %_runtimearr_S4 = OpTypeRuntimeArray %S4 +// CHECK-DAG: %S4 = OpTypeStruct %uint %uint +// CHECK-DAG: OpMemberDecorate %S4 0 Offset 0 +// CHECK-DAG: OpMemberDecorate %S4 1 Offset 4 +// CHECK-NOT-DAG: OpMemberDecorate %S4 2 + +struct S5 { + uint f1 : 1; + int f2 : 1; + uint f3 : 1; +}; +RWStructuredBuffer b5; +// CHECK-DAG: OpDecorate %_runtimearr_S5 ArrayStride 12 +// CHECK-DAG: %_runtimearr_S5 = OpTypeRuntimeArray %S5 +// CHECK-DAG: %S5 = OpTypeStruct %uint %int %uint +// CHECK-DAG: OpMemberDecorate %S5 0 Offset 0 +// CHECK-DAG: OpMemberDecorate %S5 1 Offset 4 +// CHECK-DAG: OpMemberDecorate %S5 2 Offset 8 +// CHECK-NOT-DAG: OpMemberDecorate %S5 3 + +struct S6 { + uint f1 : 1; + int f2 : 1; + uint f3 : 16; + uint f4 : 16; +}; +RWStructuredBuffer b6; +// CHECK-DAG: OpDecorate %_runtimearr_S6 ArrayStride 12 +// CHECK-DAG: %_runtimearr_S6 = OpTypeRuntimeArray %S6 +// CHECK-DAG: %S6 = OpTypeStruct %uint %int %uint +// CHECK-DAG: OpMemberDecorate %S6 0 Offset 0 +// CHECK-DAG: OpMemberDecorate %S6 1 Offset 4 +// CHECK-DAG: OpMemberDecorate %S6 2 Offset 8 +// CHECK-NOT-DAG: OpMemberDecorate %S6 3 + +struct S7 { + uint f1 : 1; + float f2; + uint f3 : 1; +}; +RWStructuredBuffer b7; +// CHECK-DAG: OpDecorate %_runtimearr_S7 ArrayStride 12 +// CHECK-DAG: %_runtimearr_S7 = OpTypeRuntimeArray %S7 +// CHECK-DAG: %S7 = OpTypeStruct %uint %float %uint +// CHECK-DAG: OpMemberDecorate %S7 0 Offset 0 +// CHECK-DAG: OpMemberDecorate %S7 1 Offset 4 +// CHECK-DAG: OpMemberDecorate %S7 2 Offset 8 +// CHECK-NOT-DAG: OpMemberDecorate %S7 3 + +struct S8 { + uint f1 : 1; + S1 f2; +}; +RWStructuredBuffer b8; +// CHECK-DAG: OpDecorate %_runtimearr_S8 ArrayStride 8 +// CHECK-DAG: %_runtimearr_S8 = OpTypeRuntimeArray %S8 +// CHECK-DAG: %S8 = OpTypeStruct %uint %S1 +// CHECK-DAG: OpMemberDecorate %S8 0 Offset 0 +// CHECK-DAG: OpMemberDecorate %S8 1 Offset 4 +// CHECK-NOT-DAG: OpMemberDecorate %S8 2 + +struct S9 { + uint f1 : 1; + uint f2 : 1; + S1 f3[10]; + uint f4 : 1; + uint f5 : 1; +}; +RWStructuredBuffer b9; +// CHECK-DAG: OpDecorate %_runtimearr_S9 ArrayStride 48 +// CHECK-DAG: %_runtimearr_S9 = OpTypeRuntimeArray %S9 +// CHECK-DAG: %S9 = OpTypeStruct %uint %_arr_S1_uint_10 %uint +// CHECK-DAG: OpMemberDecorate %S9 0 Offset 0 +// CHECK-DAG: OpMemberDecorate %S9 1 Offset 4 +// CHECK-DAG: OpMemberDecorate %S9 2 Offset 44 +// CHECK-NOT-DAG: OpMemberDecorate %S9 3 + +struct S10 : S1 { + uint f1 : 1; + uint f2 : 1; +}; +RWStructuredBuffer b10; +// CHECK-DAG: OpDecorate %_runtimearr_S10 ArrayStride 8 +// CHECK-DAG: %_runtimearr_S10 = OpTypeRuntimeArray %S10 +// CHECK-DAG: %S10 = OpTypeStruct %S1 %uint +// CHECK-DAG: OpMemberDecorate %S10 0 Offset 0 +// CHECK-DAG: OpMemberDecorate %S10 1 Offset 4 +// CHECK-NOT-DAG: OpMemberDecorate %S10 2 + +struct S11 : S10 { + uint f1 : 1; +}; +RWStructuredBuffer b11; +// CHECK-DAG: OpDecorate %_runtimearr_S11 ArrayStride 12 +// CHECK-DAG: %_runtimearr_S11 = OpTypeRuntimeArray %S11 +// CHECK-DAG: %S11 = OpTypeStruct %S10 %uint +// CHECK-DAG: OpMemberDecorate %S11 0 Offset 0 +// CHECK-DAG: OpMemberDecorate %S11 1 Offset 8 +// CHECK-NOT-DAG: OpMemberDecorate %S11 2 + +struct S12 : S8 { + uint f1 : 1; +}; +RWStructuredBuffer b12; +// CHECK-DAG: OpDecorate %_runtimearr_S12 ArrayStride 12 +// CHECK-DAG: %_runtimearr_S12 = OpTypeRuntimeArray %S12 +// CHECK-DAG: %S12 = OpTypeStruct %S8 %uint +// CHECK-DAG: OpMemberDecorate %S12 0 Offset 0 +// CHECK-DAG: OpMemberDecorate %S12 1 Offset 8 +// CHECK-NOT-DAG: OpMemberDecorate %S12 2 + +[numthreads(1, 1, 1)] +void main() { } diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-float.ll chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-float.ll --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-float.ll 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-float.ll 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,135 @@ +; RUN: %dxopt %s -hlsl-passes-resume -scalarrepl-param-hlsl -S | FileCheck %s + +; The pass replaces a memcpy from a zero-initialized global that does not have an intervening store. +; When tracing through geps and bitcasts of uses of that global, the algorithm might +; bottom out at replacing a load of a scalar float. Verify this works. + +; In the following code, %2 should be replaced by float 0.0 +; %2 = load float, float* %src_in_g,... +; It only has one use: being stored to one of the elements of @g_1 + +; CHECK: for.body.i: +; CHECK: [[DEST:%[a-z0-9\.]+]] = getelementptr inbounds [10 x float], [10 x float]* @g_1, i32 0 +; CHECK: store float 0.000000e+00, float* [[DEST]] +; CHECK: end.block: + + +target datalayout = "e-m:e-p:32:32-i1:32-i8:32-i16:32-i32:32-i64:64-f16:32-f32:32-f64:64-n8:16:32:64" +target triple = "dxil-ms-dx" + +%struct.ByteAddressBuffer = type { i32 } +%ConstantBuffer = type opaque +%struct.PSOut = type { <4 x float> } + +@"\01?g_2@@3UByteAddressBuffer@@A" = external global %struct.ByteAddressBuffer, align 4 +@g = internal global [10 x float] zeroinitializer, align 4 +@g_1 = internal global [10 x float] zeroinitializer, align 4 +@"$Globals" = external constant %ConstantBuffer + +; Function Attrs: nounwind +define void @frag_main(%struct.PSOut* noalias sret %agg.result) #0 { +entry: + %i.i = alloca i32, align 4 + %copy.i = alloca [10 x float], align 4 + %wrapper_result = alloca %struct.PSOut, align 4 + store i32 0, i32* %i.i, align 4, !dbg !23, !tbaa !29 ; line:10 col:12 + br label %for.cond.i, !dbg !33 ; line:10 col:8 + +for.cond.i: ; preds = %for.body.i, %entry + %0 = load i32, i32* %i.i, align 4, !dbg !34, !tbaa !29 ; line:10 col:19 + %cmp.i = icmp slt i32 %0, 10, !dbg !35 ; line:10 col:21 + br i1 %cmp.i, label %for.body.i, label %end.block, !dbg !36 ; line:10 col:3 + +for.body.i: ; preds = %for.cond.i + %1 = load i32, i32* %i.i, align 4, !dbg !37, !tbaa !29 ; line:11 col:16 + %src_in_g = getelementptr inbounds [10 x float], [10 x float]* @g, i32 0, i32 %1, !dbg !38 ; line:11 col:14 + %2 = load float, float* %src_in_g, align 4, !dbg !38, !tbaa !39 ; line:11 col:14 + %3 = load i32, i32* %i.i, align 4, !dbg !41, !tbaa !29 ; line:11 col:9 + %dest = getelementptr inbounds [10 x float], [10 x float]* @g_1, i32 0, i32 %3, !dbg !42 ; line:11 col:5 + store float %2, float* %dest, align 4, !dbg !43, !tbaa !39 ; line:11 col:12 + %4 = load i32, i32* %i.i, align 4, !dbg !44, !tbaa !29 ; line:10 col:28 + %inc.i = add nsw i32 %4, 1, !dbg !44 ; line:10 col:28 + store i32 %inc.i, i32* %i.i, align 4, !dbg !44, !tbaa !29 ; line:10 col:28 + br label %for.cond.i, !dbg !36 ; line:10 col:3 + +end.block: ; preds = %for.cond.i + %5 = bitcast [10 x float]* %copy.i to i8*, !dbg !45 ; line:13 col:20 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* bitcast ([10 x float]* @g to i8*), i64 40, i32 1, i1 false) #0, !dbg !45 ; line:13 col:20 + %6 = bitcast [10 x float]* %copy.i to i8*, !dbg !46 ; line:14 col:7 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast ([10 x float]* @g to i8*), i8* %6, i64 40, i32 1, i1 false) #0, !dbg !46 ; line:14 col:7 + %value = getelementptr inbounds %struct.PSOut, %struct.PSOut* %wrapper_result, i32 0, i32 0, !dbg !47 ; line:20 col:18 + store <4 x float> zeroinitializer, <4 x float>* %value, align 4, !dbg !48, !tbaa !49 ; line:20 col:24 + %7 = bitcast %struct.PSOut* %agg.result to i8*, !dbg !50 ; line:21 col:10 + %8 = bitcast %struct.PSOut* %wrapper_result to i8*, !dbg !50 ; line:21 col:10 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %8, i64 16, i32 1, i1 false), !dbg !50 ; line:21 col:10 + ret void, !dbg !51 ; line:21 col:3 +} + +; Function Attrs: nounwind +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #0 + +attributes #0 = { nounwind } + +!llvm.module.flags = !{!0} +!pauseresume = !{!1} +!llvm.ident = !{!2} +!dx.version = !{!3} +!dx.valver = !{!4} +!dx.shaderModel = !{!5} +!dx.typeAnnotations = !{!6, !9} +!dx.entryPoints = !{!14} +!dx.fnprops = !{!20} +!dx.options = !{!21, !22} + +!0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = !{!"hlsl-hlemit", !"hlsl-hlensure"} +!2 = !{!"dxc(private) 1.8.0.14549 (main, 0781ded87-dirty)"} +!3 = !{i32 1, i32 0} +!4 = !{i32 1, i32 8} +!5 = !{!"ps", i32 6, i32 0} +!6 = !{i32 0, %struct.PSOut undef, !7} +!7 = !{i32 16, !8} +!8 = !{i32 6, !"value", i32 3, i32 0, i32 4, !"SV_Target0", i32 7, i32 9} +!9 = !{i32 1, void (%struct.PSOut*)* @frag_main, !10} +!10 = !{!11, !13} +!11 = !{i32 0, !12, !12} +!12 = !{} +!13 = !{i32 1, !12, !12} +!14 = !{void (%struct.PSOut*)* @frag_main, !"frag_main", null, !15, null} +!15 = !{!16, null, !18, null} +!16 = !{!17} +!17 = !{i32 0, %struct.ByteAddressBuffer* @"\01?g_2@@3UByteAddressBuffer@@A", !"g_2", i32 0, i32 0, i32 1, i32 11, i32 0, null} +!18 = !{!19} +!19 = !{i32 0, %ConstantBuffer* @"$Globals", !"$Globals", i32 0, i32 -1, i32 1, i32 0, null} +!20 = !{void (%struct.PSOut*)* @frag_main, i32 0, i1 false} +!21 = !{i32 144} +!22 = !{i32 -1} +!23 = !DILocation(line: 10, column: 12, scope: !24, inlinedAt: !27) +!24 = !DISubprogram(name: "inner", scope: !25, file: !25, line: 9, type: !26, isLocal: false, isDefinition: true, scopeLine: 9, flags: DIFlagPrototyped, isOptimized: false) +!25 = !DIFile(filename: "float.hlsl", directory: "") +!26 = !DISubroutineType(types: !12) +!27 = distinct !DILocation(line: 20, column: 26, scope: !28) +!28 = !DISubprogram(name: "frag_main", scope: !25, file: !25, line: 18, type: !26, isLocal: false, isDefinition: true, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false, function: void (%struct.PSOut*)* @frag_main) +!29 = !{!30, !30, i64 0} +!30 = !{!"int", !31, i64 0} +!31 = !{!"omnipotent char", !32, i64 0} +!32 = !{!"Simple C/C++ TBAA"} +!33 = !DILocation(line: 10, column: 8, scope: !24, inlinedAt: !27) +!34 = !DILocation(line: 10, column: 19, scope: !24, inlinedAt: !27) +!35 = !DILocation(line: 10, column: 21, scope: !24, inlinedAt: !27) +!36 = !DILocation(line: 10, column: 3, scope: !24, inlinedAt: !27) +!37 = !DILocation(line: 11, column: 16, scope: !24, inlinedAt: !27) +!38 = !DILocation(line: 11, column: 14, scope: !24, inlinedAt: !27) +!39 = !{!40, !40, i64 0} +!40 = !{!"float", !31, i64 0} +!41 = !DILocation(line: 11, column: 9, scope: !24, inlinedAt: !27) +!42 = !DILocation(line: 11, column: 5, scope: !24, inlinedAt: !27) +!43 = !DILocation(line: 11, column: 12, scope: !24, inlinedAt: !27) +!44 = !DILocation(line: 10, column: 28, scope: !24, inlinedAt: !27) +!45 = !DILocation(line: 13, column: 20, scope: !24, inlinedAt: !27) +!46 = !DILocation(line: 14, column: 7, scope: !24, inlinedAt: !27) +!47 = !DILocation(line: 20, column: 18, scope: !28) +!48 = !DILocation(line: 20, column: 24, scope: !28) +!49 = !{!31, !31, i64 0} +!50 = !DILocation(line: 21, column: 10, scope: !28) +!51 = !DILocation(line: 21, column: 3, scope: !28) diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-int.ll chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-int.ll --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-int.ll 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/DXC/Passes/ScalarReplHLSL/scalarrepl-param-hlsl-replace-zero-recurse-to-int.ll 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,134 @@ +; RUN: %dxopt %s -hlsl-passes-resume -scalarrepl-param-hlsl -S | FileCheck %s + + +; The pass replaces a memcpy from a zero-initialized global that does not have an intervening store. +; When tracing through geps and bitcasts of uses of that global, the algorithm might +; bottom out at replacing a load of a scalar float. Verify this works. + +; In the following code, %2 should be replaced by i32 0 +; %2 = load i32, i32* %src_in_g, +; It only has one use: being stored to one of the elements of @g_1 + +; CHECK: for.body.i: +; CHECK: [[DEST:%[a-z0-9\.]+]] = getelementptr inbounds [10 x i32], [10 x i32]* @g_1, i32 0 +; CHECK: store i32 0, i32* [[DEST]] +; CHECK: end.block: + + +target datalayout = "e-m:e-p:32:32-i1:32-i8:32-i16:32-i32:32-i64:64-f16:32-f32:32-f64:64-n8:16:32:64" +target triple = "dxil-ms-dx" + +%struct.ByteAddressBuffer = type { i32 } +%ConstantBuffer = type opaque +%struct.PSOut = type { <4 x float> } + +@"\01?g_2@@3UByteAddressBuffer@@A" = external global %struct.ByteAddressBuffer, align 4 +@g = internal global [10 x i32] zeroinitializer, align 4 +@g_1 = internal global [10 x i32] zeroinitializer, align 4 +@"$Globals" = external constant %ConstantBuffer + +; Function Attrs: nounwind +define void @frag_main(%struct.PSOut* noalias sret %agg.result) #0 { +entry: + %i.i = alloca i32, align 4 + %copy.i = alloca [10 x i32], align 4 + %wrapper_result = alloca %struct.PSOut, align 4 + store i32 0, i32* %i.i, align 4, !dbg !23, !tbaa !29 ; line:10 col:12 + br label %for.cond.i, !dbg !33 ; line:10 col:8 + +for.cond.i: ; preds = %for.body.i, %entry + %0 = load i32, i32* %i.i, align 4, !dbg !34, !tbaa !29 ; line:10 col:19 + %cmp.i = icmp slt i32 %0, 10, !dbg !35 ; line:10 col:21 + br i1 %cmp.i, label %for.body.i, label %end.block, !dbg !36 ; line:10 col:3 + +for.body.i: ; preds = %for.cond.i + %1 = load i32, i32* %i.i, align 4, !dbg !37, !tbaa !29 ; line:11 col:16 + %src_in_g = getelementptr inbounds [10 x i32], [10 x i32]* @g, i32 0, i32 %1, !dbg !38 ; line:11 col:14 + %2 = load i32, i32* %src_in_g, align 4, !dbg !38, !tbaa !29 ; line:11 col:14 + %3 = load i32, i32* %i.i, align 4, !dbg !39, !tbaa !29 ; line:11 col:9 + %dest = getelementptr inbounds [10 x i32], [10 x i32]* @g_1, i32 0, i32 %3, !dbg !40 ; line:11 col:5 + store i32 %2, i32* %dest, align 4, !dbg !41, !tbaa !29 ; line:11 col:12 + %4 = load i32, i32* %i.i, align 4, !dbg !42, !tbaa !29 ; line:10 col:28 + %inc.i = add nsw i32 %4, 1, !dbg !42 ; line:10 col:28 + store i32 %inc.i, i32* %i.i, align 4, !dbg !42, !tbaa !29 ; line:10 col:28 + br label %for.cond.i, !dbg !36 ; line:10 col:3 + +end.block: ; preds = %for.cond.i + %5 = bitcast [10 x i32]* %copy.i to i8*, !dbg !43 ; line:13 col:18 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* bitcast ([10 x i32]* @g to i8*), i64 40, i32 1, i1 false) #0, !dbg !43 ; line:13 col:18 + %6 = bitcast [10 x i32]* %copy.i to i8*, !dbg !44 ; line:14 col:7 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast ([10 x i32]* @g to i8*), i8* %6, i64 40, i32 1, i1 false) #0, !dbg !44 ; line:14 col:7 + %value = getelementptr inbounds %struct.PSOut, %struct.PSOut* %wrapper_result, i32 0, i32 0, !dbg !45 ; line:20 col:18 + store <4 x float> zeroinitializer, <4 x float>* %value, align 4, !dbg !46, !tbaa !47 ; line:20 col:24 + %7 = bitcast %struct.PSOut* %agg.result to i8*, !dbg !48 ; line:21 col:10 + %8 = bitcast %struct.PSOut* %wrapper_result to i8*, !dbg !48 ; line:21 col:10 + call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %8, i64 16, i32 1, i1 false), !dbg !48 ; line:21 col:10 + ret void, !dbg !49 ; line:21 col:3 +} + +; Function Attrs: nounwind +declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #0 + +attributes #0 = { nounwind } + +!llvm.module.flags = !{!0} +!pauseresume = !{!1} +!llvm.ident = !{!2} +!dx.version = !{!3} +!dx.valver = !{!4} +!dx.shaderModel = !{!5} +!dx.typeAnnotations = !{!6, !9} +!dx.entryPoints = !{!14} +!dx.fnprops = !{!20} +!dx.options = !{!21, !22} + +!0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = !{!"hlsl-hlemit", !"hlsl-hlensure"} +!2 = !{!"dxc(private) 1.8.0.14549 (main, 0781ded87-dirty)"} +!3 = !{i32 1, i32 0} +!4 = !{i32 1, i32 8} +!5 = !{!"ps", i32 6, i32 0} +!6 = !{i32 0, %struct.PSOut undef, !7} +!7 = !{i32 16, !8} +!8 = !{i32 6, !"value", i32 3, i32 0, i32 4, !"SV_Target0", i32 7, i32 9} +!9 = !{i32 1, void (%struct.PSOut*)* @frag_main, !10} +!10 = !{!11, !13} +!11 = !{i32 0, !12, !12} +!12 = !{} +!13 = !{i32 1, !12, !12} +!14 = !{void (%struct.PSOut*)* @frag_main, !"frag_main", null, !15, null} +!15 = !{!16, null, !18, null} +!16 = !{!17} +!17 = !{i32 0, %struct.ByteAddressBuffer* @"\01?g_2@@3UByteAddressBuffer@@A", !"g_2", i32 0, i32 0, i32 1, i32 11, i32 0, null} +!18 = !{!19} +!19 = !{i32 0, %ConstantBuffer* @"$Globals", !"$Globals", i32 0, i32 -1, i32 1, i32 0, null} +!20 = !{void (%struct.PSOut*)* @frag_main, i32 0, i1 false} +!21 = !{i32 144} +!22 = !{i32 -1} +!23 = !DILocation(line: 10, column: 12, scope: !24, inlinedAt: !27) +!24 = !DISubprogram(name: "inner", scope: !25, file: !25, line: 9, type: !26, isLocal: false, isDefinition: true, scopeLine: 9, flags: DIFlagPrototyped, isOptimized: false) +!25 = !DIFile(filename: "int.hlsl", directory: "") +!26 = !DISubroutineType(types: !12) +!27 = distinct !DILocation(line: 20, column: 26, scope: !28) +!28 = !DISubprogram(name: "frag_main", scope: !25, file: !25, line: 18, type: !26, isLocal: false, isDefinition: true, scopeLine: 18, flags: DIFlagPrototyped, isOptimized: false, function: void (%struct.PSOut*)* @frag_main) +!29 = !{!30, !30, i64 0} +!30 = !{!"int", !31, i64 0} +!31 = !{!"omnipotent char", !32, i64 0} +!32 = !{!"Simple C/C++ TBAA"} +!33 = !DILocation(line: 10, column: 8, scope: !24, inlinedAt: !27) +!34 = !DILocation(line: 10, column: 19, scope: !24, inlinedAt: !27) +!35 = !DILocation(line: 10, column: 21, scope: !24, inlinedAt: !27) +!36 = !DILocation(line: 10, column: 3, scope: !24, inlinedAt: !27) +!37 = !DILocation(line: 11, column: 16, scope: !24, inlinedAt: !27) +!38 = !DILocation(line: 11, column: 14, scope: !24, inlinedAt: !27) +!39 = !DILocation(line: 11, column: 9, scope: !24, inlinedAt: !27) +!40 = !DILocation(line: 11, column: 5, scope: !24, inlinedAt: !27) +!41 = !DILocation(line: 11, column: 12, scope: !24, inlinedAt: !27) +!42 = !DILocation(line: 10, column: 28, scope: !24, inlinedAt: !27) +!43 = !DILocation(line: 13, column: 18, scope: !24, inlinedAt: !27) +!44 = !DILocation(line: 14, column: 7, scope: !24, inlinedAt: !27) +!45 = !DILocation(line: 20, column: 18, scope: !28) +!46 = !DILocation(line: 20, column: 24, scope: !28) +!47 = !{!31, !31, i64 0} +!48 = !DILocation(line: 21, column: 10, scope: !28) +!49 = !DILocation(line: 21, column: 3, scope: !28) diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/DXC/disable_paq.hlsl chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/DXC/disable_paq.hlsl --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/DXC/disable_paq.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/DXC/disable_paq.hlsl 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,19 @@ +// REQUIRES: dxil-1-8 +// RUN: %dxc -T lib_6_7 -disable-payload-qualifiers %s 2>&1 | FileCheck %s +// RUN: %dxc -T lib_6_8 -disable-payload-qualifiers %s 2>&1 | FileCheck %s + +// Ensures that -disable-payload-qualifiers works properly for SM6.6+ versions + + +// CHECK: warning: payload access qualifiers ignored. These are only supported for lib_6_7+ targets and lib_6_6 with with the -enable-payload-qualifiers flag. + +// CHECK-NOT: !dx.dxrPayloadAnnotations + +struct [raypayload] Payload { + int a : read(caller) : write(caller, miss); +}; + +[shader("miss")] +void main( inout Payload payload ) { + payload.a = 0.0; +} \ No newline at end of file diff -Nru chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/DXC/matrix_crash.ll chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/DXC/matrix_crash.ll --- chromium-125.0.6422.60/third_party/dawn/third_party/dxc/tools/clang/test/DXC/matrix_crash.ll 1970-01-01 00:00:00.000000000 +0000 +++ chromium-125.0.6422.76/third_party/dawn/third_party/dxc/tools/clang/test/DXC/matrix_crash.ll 2024-05-21 22:47:22.000000000 +0000 @@ -0,0 +1,76 @@ +; RUN: %dxopt %s -hlsl-passes-resume -hlmatrixlower -S | FileCheck %s + + +; This test verifies that we convert casting an undef matrix to an undef matrix +; that is then stored. In the absence of this behavior we were encountering an +; asan use-after-free. + +; CHECK: store <8 x float> undef, <8 x float>* + +target datalayout = "e-m:e-p:32:32-i1:32-i8:32-i16:32-i32:32-i64:64-f16:32-f32:32-f64:64-n8:16:32:64" +target triple = "dxil-ms-dx" + +%ConstantBuffer = type opaque +%class.matrix.float.4.2 = type { [4 x <2 x float>] } + +@"$Globals" = external constant %ConstantBuffer + +; Function Attrs: nounwind +define void @main() #0 { + %_e1 = alloca %class.matrix.float.4.2, align 4 + br label %1, !dbg !17 ; line:2 col:3 + +;