/* * Copyright © 2016 Red Hat. * Copyright © 2016 Bas Nieuwenhuizen * SPDX-License-Identifier: MIT * * based in part on anv driver which is: * Copyright © 2015 Intel Corporation */ #ifndef TU_COMMON_H #define TU_COMMON_H #include #include #include #include #include #include #include #ifdef HAVE_VALGRIND #include #include #define VG(x) x #else #define VG(x) ((void)0) #endif #define MESA_LOG_TAG "TU" #include "c11/threads.h" #include "util/rounding.h" #include "util/bitscan.h" #include "util/list.h" #include "util/log.h" #include "util/macros.h" #include "util/sparse_array.h" #include "util/u_atomic.h" #include "util/u_dynarray.h" #include "util/xmlconfig.h" #include "util/perf/u_trace.h" #include "vk_alloc.h" #include "vk_debug_report.h" #include "vk_device.h" #include "vk_dispatch_table.h" #include "vk_extensions.h" #include "vk_instance.h" #include "vk_log.h" #include "vk_physical_device.h" #include "vk_shader_module.h" #include "vk_pipeline_cache.h" #include "wsi_common.h" #include "ir3/ir3_compiler.h" #include "ir3/ir3_shader.h" #include "adreno_common.xml.h" #include "adreno_pm4.xml.h" #include "a6xx.xml.h" #include "fdl/freedreno_layout.h" #include "common/freedreno_dev_info.h" #include "common/freedreno_common.h" #include "perfcntrs/freedreno_perfcntr.h" #include #include #include #include "tu_entrypoints.h" #include "vulkan/runtime/vk_common_entrypoints.h" #include "vk_format.h" #include "vk_image.h" #include "vk_command_buffer.h" #include "vk_command_pool.h" #include "vk_queue.h" #include "vk_object.h" #include "vk_sync.h" #include "vk_drm_syncobj.h" #include "vk_sync_timeline.h" #define MAX_VBS 32 #define MAX_VERTEX_ATTRIBS 32 #define MAX_RTS 8 #define MAX_VSC_PIPES 32 #define MAX_VIEWPORTS 16 #define MAX_VIEWPORT_SIZE (1 << 14) #define MAX_SCISSORS 16 #define MAX_DISCARD_RECTANGLES 4 #define MAX_PUSH_CONSTANTS_SIZE 256 #define MAX_PUSH_DESCRIPTORS 32 #define MAX_DYNAMIC_UNIFORM_BUFFERS 16 #define MAX_DYNAMIC_STORAGE_BUFFERS 8 #define MAX_DYNAMIC_BUFFERS_SIZE \ (MAX_DYNAMIC_UNIFORM_BUFFERS + 2 * MAX_DYNAMIC_STORAGE_BUFFERS) * \ A6XX_TEX_CONST_DWORDS #define TU_MAX_DRM_DEVICES 8 #define MAX_VIEWS 16 #define MAX_BIND_POINTS 2 /* compute + graphics */ /* The Qualcomm driver exposes 0x20000058 */ #define MAX_STORAGE_BUFFER_RANGE 0x20000000 /* We use ldc for uniform buffer loads, just like the Qualcomm driver, so * expose the same maximum range. * TODO: The SIZE bitfield is 15 bits, and in 4-dword units, so the actual * range might be higher. */ #define MAX_UNIFORM_BUFFER_RANGE 0x10000 #define A6XX_TEX_CONST_DWORDS 16 #define A6XX_TEX_SAMP_DWORDS 4 #define TU_FROM_HANDLE(__tu_type, __name, __handle) \ VK_FROM_HANDLE(__tu_type, __name, __handle) /* vk object types */ struct tu_buffer; struct tu_buffer_view; struct tu_cmd_buffer; struct tu_cmd_pool; struct tu_descriptor_pool; struct tu_descriptor_set; struct tu_descriptor_set_layout; struct tu_descriptor_update_template; struct tu_device; struct tu_device_memory; struct tu_event; struct tu_framebuffer; struct tu_image; struct tu_image_view; struct tu_instance; struct tu_physical_device; struct tu_pipeline_layout; struct tu_query_pool; struct tu_queue; struct tu_render_pass; struct tu_sampler; struct tu_sampler_ycbcr_conversion; struct breadcrumbs_context; struct tu_bo; struct tu_cs; struct tu_cs_entry; struct tu_suballoc_bo; struct tu_suballocator; struct tu_subpass; struct tu_u_trace_submission_data; #endif /* TU_COMMON_H */