mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-17 02:18:21 +02:00
v3dv: use drirc_gen
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41881>
This commit is contained in:
parent
8b422baac8
commit
86406ca87d
7 changed files with 87 additions and 39 deletions
|
|
@ -1,6 +1,19 @@
|
|||
# Copyright © 2019 Raspberry Pi Ltd
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
v3dv_drirc = custom_target(
|
||||
'v3dv_drirc',
|
||||
input : [files('v3dv_drirc_gen.py'), drirc_gen, join_paths(dir_source_root, 'src/util/00-v3dv-defaults.conf')],
|
||||
output : ['v3dv_drirc.c', 'v3dv_drirc.h'],
|
||||
command : [
|
||||
prog_python, '@INPUT0@',
|
||||
'--import-path', join_paths(dir_source_root, 'src/util'),
|
||||
'--drirc-src', '@OUTPUT0@',
|
||||
'--drirc-hdr', '@OUTPUT1@',
|
||||
'--validate', '@INPUT2@',
|
||||
],
|
||||
)
|
||||
|
||||
v3dv_entrypoints = custom_target(
|
||||
'v3dv_entrypoints',
|
||||
input : [vk_entrypoints_gen, vk_api_xml],
|
||||
|
|
@ -92,7 +105,7 @@ per_version_libs = []
|
|||
foreach ver : v3d_versions
|
||||
per_version_libs += static_library(
|
||||
'v3dv-v' + ver,
|
||||
[files_per_version, v3d_xml_pack, v3dv_entrypoints[0]],
|
||||
[files_per_version, v3d_xml_pack, v3dv_entrypoints[0], v3dv_drirc[1]],
|
||||
include_directories : [
|
||||
inc_src, inc_include, inc_broadcom,
|
||||
inc_util,
|
||||
|
|
@ -105,7 +118,7 @@ endforeach
|
|||
|
||||
libvulkan_broadcom = shared_library(
|
||||
'vulkan_broadcom',
|
||||
[libv3dv_files, v3dv_entrypoints, sha1_h],
|
||||
[libv3dv_files, v3dv_entrypoints, v3dv_drirc, sha1_h],
|
||||
include_directories : [
|
||||
inc_include, inc_src, inc_broadcom, inc_util,
|
||||
],
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
|
||||
#include "util/build_id.h"
|
||||
#include "util/disk_cache.h"
|
||||
#include "util/driconf.h"
|
||||
#include "v3dv_drirc.h"
|
||||
#include "util/os_file.h"
|
||||
#include "util/os_misc.h"
|
||||
#include "util/u_atomic.h"
|
||||
|
|
@ -594,35 +594,17 @@ static const struct debug_control v3dv_pipeline_cache_control[] = {
|
|||
{ NULL, 0 },
|
||||
};
|
||||
|
||||
static const driOptionDescription v3dv_dri_options[] = {
|
||||
DRI_CONF_SECTION_PERFORMANCE
|
||||
DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0)
|
||||
DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_XWAYLAND_WAIT_READY(true)
|
||||
DRI_CONF_SECTION_END
|
||||
|
||||
DRI_CONF_SECTION_MISCELLANEOUS
|
||||
DRI_CONF_HEAP_MEMORY_PERCENT(OS_GPU_HEAP_SIZE_HEURISTIC)
|
||||
DRI_CONF_SECTION_END
|
||||
};
|
||||
|
||||
static void
|
||||
v3dv_init_dri_options(struct v3dv_instance *instance)
|
||||
{
|
||||
driParseOptionInfo(&instance->available_dri_options, v3dv_dri_options,
|
||||
ARRAY_SIZE(v3dv_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "v3dv",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
|
||||
instance->heap_memory_percent =
|
||||
driQueryOptionf(&instance->dri_options, "heap_memory_percent");
|
||||
v3dv_parse_dri_options(&instance->drirc,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "v3dv",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL
|
||||
|
|
@ -765,8 +747,8 @@ v3dv_DestroyInstance(VkInstance _instance,
|
|||
|
||||
VG(VALGRIND_DESTROY_MEMPOOL(instance));
|
||||
|
||||
driDestroyOptionCache(&instance->dri_options);
|
||||
driDestroyOptionInfo(&instance->available_dri_options);
|
||||
driDestroyOptionCache(&instance->drirc.options);
|
||||
driDestroyOptionInfo(&instance->drirc.available_options);
|
||||
|
||||
vk_instance_finish(&instance->vk);
|
||||
vk_free(&instance->vk.alloc, instance);
|
||||
|
|
@ -779,8 +761,8 @@ compute_heap_size(struct v3dv_instance *instance)
|
|||
ASSERTED const uint64_t MAX_HEAP_SIZE = 4ull * 1024ull * 1024ull * 1024ull;
|
||||
uint64_t memory;
|
||||
#if !USE_V3D_SIMULATOR
|
||||
memory = os_get_gpu_heap_size(instance->heap_memory_percent,
|
||||
&instance->heap_memory_percent);
|
||||
memory = os_get_gpu_heap_size(instance->drirc.misc.heap_memory_percent,
|
||||
&instance->drirc.misc.heap_memory_percent);
|
||||
return MIN2(MAX_HEAP_SIZE, memory);
|
||||
#else
|
||||
/* Memory allocated by the simulator is fully dedicated for the GPU so we
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
#include "common/v3d_device_info.h"
|
||||
#include "wsi_common.h"
|
||||
#include "util/sparse_array.h"
|
||||
#include "util/xmlconfig.h"
|
||||
#include "v3dv_drirc.h"
|
||||
|
||||
struct v3dv_event;
|
||||
struct v3dv_format;
|
||||
|
|
@ -156,10 +156,7 @@ bool v3dv_meta_can_use_tlb(struct v3dv_image *image,
|
|||
struct v3dv_instance {
|
||||
struct vk_instance vk;
|
||||
|
||||
struct driOptionCache dri_options;
|
||||
struct driOptionCache available_dri_options;
|
||||
|
||||
float heap_memory_percent;
|
||||
struct v3dv_drirc drirc;
|
||||
|
||||
bool pipeline_cache_enabled;
|
||||
bool default_pipeline_cache_enabled;
|
||||
|
|
|
|||
50
src/broadcom/vulkan/v3dv_drirc_gen.py
Normal file
50
src/broadcom/vulkan/v3dv_drirc_gen.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/env python3
|
||||
# Copyright © 2019 Raspberry Pi Ltd
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import argparse
|
||||
import sys
|
||||
|
||||
VALID_COMMON_VK_OPTIONS = {
|
||||
"heap_memory_percent",
|
||||
}
|
||||
|
||||
def declare_options():
|
||||
import drirc_gen
|
||||
|
||||
debug_options = []
|
||||
features_options = []
|
||||
performance_options = []
|
||||
misc_options = []
|
||||
|
||||
drirc_gen.add_common_vk_options(debug_options, features_options, misc_options,
|
||||
valid_options=VALID_COMMON_VK_OPTIONS)
|
||||
drirc_gen.add_common_vk_wsi_options(debug_options, performance_options,
|
||||
defaults={"vk_xwayland_wait_ready": True})
|
||||
|
||||
return [
|
||||
drirc_gen.DrircSection("Debugging", debug_options, c_name="debug"),
|
||||
drirc_gen.DrircSection("Performance", performance_options, c_name="performance"),
|
||||
drirc_gen.DrircSection("Misc", misc_options, c_name="misc"),
|
||||
]
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-p', '--import-path', required=True)
|
||||
parser.add_argument('--drirc-src', required=True)
|
||||
parser.add_argument('--drirc-hdr', required=True)
|
||||
parser.add_argument('--validate', required=True)
|
||||
args = parser.parse_args()
|
||||
|
||||
sys.path.insert(0, args.import_path)
|
||||
import drirc_gen
|
||||
|
||||
options = declare_options()
|
||||
|
||||
drirc_gen.drirc_validate([args.validate], options)
|
||||
|
||||
drirc_gen.drirc_generate(args.drirc_src, args.drirc_hdr, "v3dv", options)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
@ -109,7 +109,7 @@ v3dv_wsi_init(struct v3dv_physical_device *physical_device)
|
|||
v3dv_wsi_proc_addr,
|
||||
&physical_device->vk.instance->alloc,
|
||||
physical_device->display_fd,
|
||||
&v3dv_instance->dri_options,
|
||||
&v3dv_instance->drirc.options,
|
||||
&(struct wsi_device_options){.sw_device = false});
|
||||
|
||||
if (result != VK_SUCCESS)
|
||||
|
|
|
|||
5
src/util/00-v3dv-defaults.conf
Normal file
5
src/util/00-v3dv-defaults.conf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<driconf>
|
||||
<device driver="v3dv">
|
||||
</device>
|
||||
</driconf>
|
||||
|
|
@ -220,6 +220,7 @@ foreach i : [
|
|||
[with_nouveau_vk, '00-nvk-defaults.conf'],
|
||||
[with_microsoft_vk, '00-dzn-defaults.conf'],
|
||||
[with_imagination_vk, '00-pvr-defaults.conf'],
|
||||
[with_broadcom_vk, '00-v3dv-defaults.conf'],
|
||||
[with_freedreno_vk, '00-turnip-defaults.conf'],
|
||||
[with_gallium_r300, '00-r300-defaults.conf'],
|
||||
[with_gallium_iris, '00-iris-defaults.conf'],
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue