radv: Generate icd files.
If the api version is too low, the loader clamps the application requested version to the advertized version, which messes with which extensions are enabled. Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"file_format_version": "1.0.0",
|
|
||||||
"ICD": {
|
|
||||||
"library_path": "@libvulkan_radeon_path@",
|
|
||||||
"api_version": "1.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+23
-11
@@ -134,18 +134,30 @@ libvulkan_radeon = shared_library(
|
|||||||
install : true,
|
install : true,
|
||||||
)
|
)
|
||||||
|
|
||||||
radv_data = configuration_data()
|
radeon_icd = custom_target(
|
||||||
radv_data.set('install_libdir', join_paths(get_option('prefix'), get_option('libdir')))
|
'radeon_icd',
|
||||||
radv_data.set('libvulkan_radeon_path', libvulkan_radeon.full_path())
|
input : 'radv_icd.py',
|
||||||
|
|
||||||
configure_file(
|
|
||||||
configuration : radv_data,
|
|
||||||
input : 'radeon_icd.json.in',
|
|
||||||
output : 'radeon_icd.@0@.json'.format(host_machine.cpu()),
|
output : 'radeon_icd.@0@.json'.format(host_machine.cpu()),
|
||||||
|
command : [
|
||||||
|
prog_python2, '@INPUT@',
|
||||||
|
'--lib-path', join_paths(get_option('prefix'), get_option('libdir')),
|
||||||
|
'--out', '@OUTPUT@',
|
||||||
|
],
|
||||||
|
depend_files : files('radv_extensions.py'),
|
||||||
|
build_by_default : true,
|
||||||
install_dir : with_vulkan_icd_dir,
|
install_dir : with_vulkan_icd_dir,
|
||||||
|
install : true,
|
||||||
)
|
)
|
||||||
configure_file(
|
|
||||||
configuration : radv_data,
|
radv_dev_icd = custom_target(
|
||||||
input : 'dev_icd.json.in',
|
'radv_dev_icd',
|
||||||
output : 'dev_icd.json'
|
input : 'radv_icd.py',
|
||||||
|
output : 'dev_icd.json',
|
||||||
|
command : [
|
||||||
|
prog_python2, '@INPUT@', '--lib-path', meson.current_build_dir(),
|
||||||
|
'--out', '@OUTPUT@'
|
||||||
|
],
|
||||||
|
depend_files : files('radv_extensions.py'),
|
||||||
|
build_by_default : true,
|
||||||
|
install : false,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"file_format_version": "1.0.0",
|
|
||||||
"ICD": {
|
|
||||||
"library_path": "@install_libdir@/libvulkan_radeon.so",
|
|
||||||
"api_version": "1.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# Copyright 2017 Intel Corporation
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
# copy of this software and associated documentation files (the
|
||||||
|
# "Software"), to deal in the Software without restriction, including
|
||||||
|
# without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
# distribute, sub license, and/or sell copies of the Software, and to
|
||||||
|
# permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
# the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice (including the
|
||||||
|
# next paragraph) shall be included in all copies or substantial portions
|
||||||
|
# of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
|
||||||
|
# IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
|
||||||
|
# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
from radv_extensions import *
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('--out', help='Output json file.', required=True)
|
||||||
|
parser.add_argument('--lib-path', help='Path to libvulkan_radeon.so')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
path = 'libvulkan_radeon.so'
|
||||||
|
if args.lib_path:
|
||||||
|
path = os.path.join(args.lib_path, path)
|
||||||
|
|
||||||
|
json_data = {
|
||||||
|
'file_format_version': '1.0.0',
|
||||||
|
'ICD': {
|
||||||
|
'library_path': path,
|
||||||
|
'api_version': str(MAX_API_VERSION),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
with open(args.out, 'w') as f:
|
||||||
|
json.dump(json_data, f, indent = 4, sort_keys=True)
|
||||||
Reference in New Issue
Block a user