In our OpenGL implementation we use function pointers. And we create macros to mimic the OpenGL functions. These macros call into the appropriate function pointer. We want to do the same thing in Vulkan.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3 commit f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3 Author: Chris Blume <cblume@chromium.org> Date: Thu Jun 28 19:35:25 2018 Use macros for Vulkan functions Currently, users of Vulkan need to get the global function pointer class. And calls into those functions look like: vulkan_function_pointers->vkCreateDevice(); Our OpenGL code hides that behind macros. This patch adds macros to mimic the OpenGL code in Chrome. Now that looks like: vkCreateDevice(); BUG= 856360 , 848101 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel Change-Id: If3aff1719b366748b9236a9e4c9e7ec69260be18 Reviewed-on: https://chromium-review.googlesource.com/1116195 Commit-Queue: Chris Blume <cblume@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#571226} [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/components/viz/common/gpu/vulkan_in_process_context_provider.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/generate_bindings.py [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_command_buffer.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_command_pool.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_descriptor_layout.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_descriptor_pool.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_descriptor_set.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_device_queue.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_function_pointers.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_function_pointers.h [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_image_view.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_implementation_android.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_instance.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_render_pass.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_sampler.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_shader_module.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_surface.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/vulkan_swap_chain.cc [modify] https://crrev.com/f0fb42f5e7b27176bd1df7d1024a70cf54ab76f3/gpu/vulkan/x/vulkan_implementation_x11.cc
Comment 1 by cblume@chromium.org
, May 31 2018