summaryrefslogtreecommitdiff
path: root/chromium/gpu/config/gpu_preferences_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/gpu/config/gpu_preferences_unittest.cc')
-rw-r--r--chromium/gpu/config/gpu_preferences_unittest.cc85
1 files changed, 83 insertions, 2 deletions
diff --git a/chromium/gpu/config/gpu_preferences_unittest.cc b/chromium/gpu/config/gpu_preferences_unittest.cc
index f2e0078f182..3cc5ecc9b74 100644
--- a/chromium/gpu/config/gpu_preferences_unittest.cc
+++ b/chromium/gpu/config/gpu_preferences_unittest.cc
@@ -5,8 +5,10 @@
#include <algorithm>
#include <cstring>
+#include "base/command_line.h"
#include "base/message_loop/message_pump_type.h"
#include "build/build_config.h"
+#include "gpu/config/gpu_switches.h"
#include "gpu/ipc/common/gpu_preferences.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -166,8 +168,7 @@ TEST(GpuPreferencesTest, EncodeDecode) {
GPU_PREFERENCES_FIELD(enable_oop_rasterization, true)
GPU_PREFERENCES_FIELD(disable_oop_rasterization, true)
GPU_PREFERENCES_FIELD(watchdog_starts_backgrounded, true)
- GPU_PREFERENCES_FIELD_ENUM(gr_context_type,
- GrContextType::kVulkan,
+ GPU_PREFERENCES_FIELD_ENUM(gr_context_type, GrContextType::kVulkan,
mojom::GrContextType::kVulkan)
GPU_PREFERENCES_FIELD_ENUM(use_vulkan, VulkanImplementationName::kNative,
mojom::VulkanImplementationName::kNative)
@@ -196,4 +197,84 @@ TEST(GpuPreferencesTest, EncodeDecode) {
}
}
+// Helper test for decoding GPU preferences from a crash dump string.
+TEST(GpuPreferencesTest, DISABLED_DecodePreferences) {
+ auto* command_line = base::CommandLine::ForCurrentProcess();
+ if (!command_line->HasSwitch(switches::kGpuPreferences)) {
+ LOG(ERROR) << "Please specify the preferences to decode via "
+ << switches::kGpuPreferences;
+ return;
+ }
+
+ const auto preferences =
+ command_line->GetSwitchValueASCII(switches::kGpuPreferences);
+
+ gpu::GpuPreferences gpu_preferences;
+ if (!gpu_preferences.FromSwitchValue(preferences)) {
+ LOG(ERROR) << "Failed to decode preferences: " << preferences;
+ return;
+ }
+
+ printf("GpuPreferences = {\n");
+#define PRINT_BOOL(key) \
+ printf(" %s: %s\n", #key, gpu_preferences.key ? "true" : "false")
+#define PRINT_INT(key) \
+ printf(" %s: %d\n", #key, static_cast<uint32_t>(gpu_preferences.key))
+
+ PRINT_BOOL(disable_accelerated_video_decode);
+ PRINT_BOOL(disable_accelerated_video_encode);
+ PRINT_BOOL(gpu_startup_dialog);
+ PRINT_BOOL(disable_gpu_watchdog);
+ PRINT_BOOL(gpu_sandbox_start_early);
+ PRINT_BOOL(enable_low_latency_dxva);
+ PRINT_BOOL(enable_zero_copy_dxgi_video);
+ PRINT_BOOL(enable_nv12_dxgi_video);
+ PRINT_BOOL(enable_media_foundation_vea_on_windows7);
+ PRINT_BOOL(disable_software_rasterizer);
+ PRINT_BOOL(log_gpu_control_list_decisions);
+ PRINT_BOOL(compile_shader_always_succeeds);
+ PRINT_BOOL(disable_gl_error_limit);
+ PRINT_BOOL(disable_glsl_translator);
+ PRINT_BOOL(disable_shader_name_hashing);
+ PRINT_BOOL(enable_gpu_command_logging);
+ PRINT_BOOL(enable_gpu_debugging);
+ PRINT_BOOL(enable_gpu_service_logging_gpu);
+ PRINT_BOOL(enable_gpu_driver_debug_logging);
+ PRINT_BOOL(disable_gpu_program_cache);
+ PRINT_BOOL(enforce_gl_minimums);
+ PRINT_INT(force_gpu_mem_available_bytes);
+ PRINT_INT(force_gpu_mem_discardable_limit_bytes);
+ PRINT_INT(gpu_program_cache_size);
+ PRINT_BOOL(disable_gpu_shader_disk_cache);
+ PRINT_BOOL(enable_threaded_texture_mailboxes);
+ PRINT_BOOL(gl_shader_interm_output);
+ PRINT_BOOL(emulate_shader_precision);
+ PRINT_BOOL(enable_gpu_service_logging);
+ PRINT_BOOL(enable_gpu_service_tracing);
+ PRINT_BOOL(use_passthrough_cmd_decoder);
+ PRINT_BOOL(disable_biplanar_gpu_memory_buffers_for_video_frames);
+ for (size_t i = 0; i < gpu_preferences.texture_target_exception_list.size();
+ ++i) {
+ PRINT_INT(texture_target_exception_list[i].usage);
+ PRINT_INT(texture_target_exception_list[i].format);
+ }
+ PRINT_BOOL(ignore_gpu_blacklist);
+ PRINT_BOOL(enable_oop_rasterization);
+ PRINT_BOOL(disable_oop_rasterization);
+ PRINT_BOOL(watchdog_starts_backgrounded);
+ PRINT_INT(gr_context_type);
+ PRINT_INT(use_vulkan);
+ PRINT_BOOL(enable_gpu_benchmarking_extension);
+ PRINT_BOOL(enable_webgpu);
+ PRINT_BOOL(enable_dawn_backend_validation);
+ PRINT_BOOL(enable_gpu_blocked_time_metric);
+ PRINT_BOOL(enable_perf_data_collection);
+#if defined(USE_OZONE)
+ PRINT_INT(message_pump_type);
+#endif
+ PRINT_BOOL(enable_native_gpu_memory_buffers);
+ PRINT_BOOL(force_disable_new_accelerated_video_decoder);
+ printf("}\n");
+}
+
} // namespace gpu