diff --git a/src/gallium/drivers/crocus/crocus_bufmgr.c b/src/gallium/drivers/crocus/crocus_bufmgr.c index d6c8c3a6028..3d62dec33d1 100644 --- a/src/gallium/drivers/crocus/crocus_bufmgr.c +++ b/src/gallium/drivers/crocus/crocus_bufmgr.c @@ -1589,18 +1589,6 @@ crocus_destroy_hw_context(struct crocus_bufmgr *bufmgr, uint32_t ctx_id) } } -static int -gem_param(int fd, int name) -{ - int v = -1; /* No param uses (yet) the sign bit, reserve it for errors */ - - struct drm_i915_getparam gp = { .param = name, .value = &v }; - if (intel_ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp)) - return -1; - - return v; -} - /** * Initializes the GEM buffer manager, which uses the kernel to allocate, map, * and manage map buffer objections. @@ -1634,7 +1622,9 @@ crocus_bufmgr_create(struct intel_device_info *devinfo, int fd, bool bo_reuse) bufmgr->has_llc = devinfo->has_llc; bufmgr->has_tiling_uapi = devinfo->has_tiling_uapi; bufmgr->bo_reuse = bo_reuse; - bufmgr->has_mmap_offset = gem_param(fd, I915_PARAM_MMAP_GTT_VERSION) >= 4; + int val; + if (intel_gem_get_param(fd, I915_PARAM_MMAP_GTT_VERSION, &val) && val >= 4) + bufmgr->has_mmap_offset = true; init_cache_buckets(bufmgr); diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c index 15ea13d8c2b..b3aebd8e539 100644 --- a/src/gallium/drivers/iris/iris_bufmgr.c +++ b/src/gallium/drivers/iris/iris_bufmgr.c @@ -2340,18 +2340,6 @@ static struct intel_mapped_pinned_buffer_alloc aux_map_allocator = { .free = intel_aux_map_buffer_free, }; -static int -gem_param(int fd, int name) -{ - int v = -1; /* No param uses (yet) the sign bit, reserve it for errors */ - - struct drm_i915_getparam gp = { .param = name, .value = &v }; - if (intel_ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp)) - return -1; - - return v; -} - static bool iris_bufmgr_get_meminfo(struct iris_bufmgr *bufmgr, struct intel_device_info *devinfo) @@ -2420,9 +2408,11 @@ iris_bufmgr_create(struct intel_device_info *devinfo, int fd, bool bo_reuse) bufmgr->has_local_mem = devinfo->has_local_mem; bufmgr->has_tiling_uapi = devinfo->has_tiling_uapi; bufmgr->bo_reuse = bo_reuse; - bufmgr->has_mmap_offset = gem_param(fd, I915_PARAM_MMAP_GTT_VERSION) >= 4; - bufmgr->has_userptr_probe = - gem_param(fd, I915_PARAM_HAS_USERPTR_PROBE) >= 1; + int val; + if (intel_gem_get_param(fd, I915_PARAM_MMAP_GTT_VERSION, &val) && val >= 4) + bufmgr->has_mmap_offset = true; + if (intel_gem_get_param(fd, I915_PARAM_HAS_USERPTR_PROBE, &val) && val >= 1) + bufmgr->has_userptr_probe = true; iris_bufmgr_get_meminfo(bufmgr, devinfo); bufmgr->all_vram_mappable = intel_vram_all_mappable(devinfo); diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index 90a598df7cb..fa2bd2dedfe 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -680,28 +680,6 @@ iris_get_disk_shader_cache(struct pipe_screen *pscreen) return screen->disk_cache; } -static int -iris_getparam(int fd, int param, int *value) -{ - struct drm_i915_getparam gp = { .param = param, .value = value }; - - if (ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp) == -1) - return -errno; - - return 0; -} - -static int -iris_getparam_integer(int fd, int param) -{ - int value = -1; - - if (iris_getparam(fd, param, &value) == 0) - return value; - - return -1; -} - static const struct intel_l3_config * iris_get_default_l3_config(const struct intel_device_info *devinfo, bool compute) @@ -806,7 +784,8 @@ iris_screen_create(int fd, const struct pipe_screen_config *config) * * Checking the last feature availability will include all previous ones. */ - if (iris_getparam_integer(fd, I915_PARAM_HAS_CONTEXT_ISOLATION) <= 0) { + int v; + if (!intel_gem_get_param(fd, I915_PARAM_HAS_CONTEXT_ISOLATION, &v) || !v) { debug_error("Kernel is too old (4.16+ required) or unusable for Iris.\n" "Check your dmesg logs for loading failures.\n"); return NULL; diff --git a/src/gallium/winsys/i915/drm/i915_drm_winsys.c b/src/gallium/winsys/i915/drm/i915_drm_winsys.c index 3baccb48989..74f1cfd0b33 100644 --- a/src/gallium/winsys/i915/drm/i915_drm_winsys.c +++ b/src/gallium/winsys/i915/drm/i915_drm_winsys.c @@ -9,6 +9,7 @@ #include "i915_drm_public.h" #include "util/u_memory.h" +#include "intel/common/intel_gem.h" /* * Helper functions @@ -18,14 +19,7 @@ static void i915_drm_get_device_id(int fd, unsigned int *device_id) { - int ret; - struct drm_i915_getparam gp; - - gp.param = I915_PARAM_CHIPSET_ID; - gp.value = (int *)device_id; - - ret = ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp, sizeof(gp)); - assert(ret == 0); + assert(intel_gem_get_param(fd, I915_PARAM_CHIPSET_ID, (int *)&device_id)); } static int @@ -53,7 +47,7 @@ struct i915_winsys * i915_drm_winsys_create(int drmFD) { struct i915_drm_winsys *idws; - unsigned int deviceID; + unsigned int deviceID = 0; idws = CALLOC_STRUCT(i915_drm_winsys); if (!idws) diff --git a/src/gallium/winsys/i915/drm/meson.build b/src/gallium/winsys/i915/drm/meson.build index 01300ad4c91..57597972417 100644 --- a/src/gallium/winsys/i915/drm/meson.build +++ b/src/gallium/winsys/i915/drm/meson.build @@ -27,5 +27,6 @@ libi915drm = static_library( include_directories : [ inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_gallium_drivers ], + link_with : [libintel_common], dependencies : [dep_libdrm, dep_libdrm_intel], ) diff --git a/src/intel/common/intel_gem.c b/src/intel/common/intel_gem.c index 72200437096..875620ac304 100644 --- a/src/intel/common/intel_gem.c +++ b/src/intel/common/intel_gem.c @@ -250,3 +250,13 @@ intel_gem_supports_protected_context(int fd) return ret; } + +bool +intel_gem_get_param(int fd, uint32_t param, int *value) +{ + drm_i915_getparam_t gp = { + .param = param, + .value = value, + }; + return intel_ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp) == 0; +} diff --git a/src/intel/common/intel_gem.h b/src/intel/common/intel_gem.h index 74c7850abfe..77d8e2c4992 100644 --- a/src/intel/common/intel_gem.h +++ b/src/intel/common/intel_gem.h @@ -174,6 +174,7 @@ intel_gem_get_context_param(int fd, uint32_t context, uint32_t param, uint64_t *value); bool intel_gem_read_render_timestamp(int fd, uint64_t *value); +bool intel_gem_get_param(int fd, uint32_t param, int *value); #ifdef __cplusplus } diff --git a/src/intel/common/tests/mi_builder_test.cpp b/src/intel/common/tests/mi_builder_test.cpp index 791869d4c36..a4cb86b26b0 100644 --- a/src/intel/common/tests/mi_builder_test.cpp +++ b/src/intel/common/tests/mi_builder_test.cpp @@ -30,6 +30,7 @@ #include "c99_compat.h" #include "common/intel_gem.h" #include "dev/intel_device_info.h" +#include "intel_gem.h" #include "drm-uapi/i915_drm.h" #include "genxml/gen_macros.h" #include "util/macros.h" @@ -189,11 +190,8 @@ mi_builder_test::SetUp() * --device option with it. */ int device_id; - drm_i915_getparam getparam = drm_i915_getparam(); - getparam.param = I915_PARAM_CHIPSET_ID; - getparam.value = &device_id; - ASSERT_EQ(drmIoctl(fd, DRM_IOCTL_I915_GETPARAM, - (void *)&getparam), 0) << strerror(errno); + ASSERT_TRUE(intel_gem_get_param(fd, I915_PARAM_CHIPSET_ID, &device_id)) + << strerror(errno); ASSERT_TRUE(intel_get_device_info_from_pci_id(device_id, &devinfo)); if (devinfo.ver != GFX_VER || @@ -215,11 +213,8 @@ mi_builder_test::SetUp() if (GFX_VER >= 8) { /* On gfx8+, we require softpin */ int has_softpin; - drm_i915_getparam getparam = drm_i915_getparam(); - getparam.param = I915_PARAM_HAS_EXEC_SOFTPIN; - getparam.value = &has_softpin; - ASSERT_EQ(drmIoctl(fd, DRM_IOCTL_I915_GETPARAM, - (void *)&getparam), 0) << strerror(errno); + ASSERT_TRUE(intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN, &has_softpin)) + << strerror(errno); ASSERT_TRUE(has_softpin); } diff --git a/src/intel/perf/intel_perf.c b/src/intel/perf/intel_perf.c index eca169efed8..adbf845edef 100644 --- a/src/intel/perf/intel_perf.c +++ b/src/intel/perf/intel_perf.c @@ -580,18 +580,9 @@ load_pipeline_statistic_metrics(struct intel_perf_config *perf_cfg, static int i915_perf_version(int drm_fd) { - int tmp; - drm_i915_getparam_t gp = { - .param = I915_PARAM_PERF_REVISION, - .value = &tmp, - }; - - int ret = intel_ioctl(drm_fd, DRM_IOCTL_I915_GETPARAM, &gp); - - /* Return 0 if this getparam is not supported, the first version supported - * is 1. - */ - return ret < 0 ? 0 : tmp; + int tmp = 0; + intel_gem_get_param(drm_fd, I915_PARAM_PERF_REVISION, &tmp); + return tmp; } static void diff --git a/src/intel/tools/intel_dump_gpu.c b/src/intel/tools/intel_dump_gpu.c index a8f3e60f5e4..7810f15131e 100644 --- a/src/intel/tools/intel_dump_gpu.c +++ b/src/intel/tools/intel_dump_gpu.c @@ -45,6 +45,7 @@ #include "dev/intel_debug.h" #include "dev/intel_device_info.h" +#include "common/intel_gem.h" #include "util/macros.h" static int close_init_helper(int fd); @@ -410,16 +411,12 @@ close(int fd) static int get_pci_id(int fd, int *pci_id) { - struct drm_i915_getparam gparam; - if (device_override) { *pci_id = device; return 0; } - gparam.param = I915_PARAM_CHIPSET_ID; - gparam.value = pci_id; - return libc_ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gparam); + return intel_gem_get_param(fd, I915_PARAM_CHIPSET_ID, pci_id) ? 0 : -1; } static void diff --git a/src/intel/tools/meson.build b/src/intel/tools/meson.build index 207e44bbfd9..981177eb66d 100644 --- a/src/intel/tools/meson.build +++ b/src/intel/tools/meson.build @@ -118,7 +118,7 @@ libintel_dump_gpu = shared_library( ), dependencies : [dep_dl, idep_mesautil], include_directories : [inc_include, inc_src, inc_intel], - link_with : libintel_dev, + link_with : [libintel_dev, libintel_common], c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', install_dir : get_option('libexecdir'), diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 055d233dc22..b16e884f406 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -741,41 +741,43 @@ static VkResult anv_i915_physical_device_get_parameters(struct anv_physical_device *device) { VkResult result = VK_SUCCESS; - int fd = device->local_fd; + int val, fd = device->local_fd; - if (!anv_gem_get_param(fd, I915_PARAM_HAS_WAIT_TIMEOUT)) { + if (!intel_gem_get_param(fd, I915_PARAM_HAS_WAIT_TIMEOUT, &val) || !val) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "kernel missing gem wait"); return result; } - if (!anv_gem_get_param(fd, I915_PARAM_HAS_EXECBUF2)) { + if (!intel_gem_get_param(fd, I915_PARAM_HAS_EXECBUF2, &val) || !val) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "kernel missing execbuf2"); return result; } if (!device->info.has_llc && - anv_gem_get_param(fd, I915_PARAM_MMAP_VERSION) < 1) { + (!intel_gem_get_param(fd, I915_PARAM_MMAP_VERSION, &val) || val < 1)) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "kernel missing wc mmap"); return result; } - if (!anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN)) { + if (!intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN, &val) || !val) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "kernel missing softpin"); return result; } - if (!anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_FENCE_ARRAY)) { + if (!intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_FENCE_ARRAY, &val) || !val) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "kernel missing syncobj support"); return result; } - device->has_exec_async = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_ASYNC); - device->has_exec_capture = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_CAPTURE); + if (intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_ASYNC, &val)) + device->has_exec_async = val; + if (intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_CAPTURE, &val)) + device->has_exec_capture = val; /* Start with medium; sorted low to high */ const VkQueueGlobalPriorityKHR priorities[] = { @@ -791,17 +793,17 @@ anv_i915_physical_device_get_parameters(struct anv_physical_device *device) device->max_context_priority = priorities[i]; } - device->has_context_isolation = - anv_gem_get_param(fd, I915_PARAM_HAS_CONTEXT_ISOLATION); + if (intel_gem_get_param(fd, I915_PARAM_HAS_CONTEXT_ISOLATION, &val)) + device->has_context_isolation = val; - device->has_exec_timeline = - anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_TIMELINE_FENCES); + if (intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_TIMELINE_FENCES, &val)) + device->has_exec_timeline = val; - device->has_mmap_offset = - anv_gem_get_param(fd, I915_PARAM_MMAP_GTT_VERSION) >= 4; + if (intel_gem_get_param(fd, I915_PARAM_MMAP_GTT_VERSION, &val)) + device->has_mmap_offset = val >= 4; - device->has_userptr_probe = - anv_gem_get_param(fd, I915_PARAM_HAS_USERPTR_PROBE); + if (intel_gem_get_param(fd, I915_PARAM_HAS_USERPTR_PROBE, &val)) + device->has_userptr_probe = val; return result; } @@ -975,10 +977,11 @@ anv_physical_device_try_create(struct vk_instance *vk_instance, if (instance->vk.enabled_extensions.KHR_display) { master_fd = open(primary_path, O_RDWR | O_CLOEXEC); if (master_fd >= 0) { + int val; /* prod the device with a GETPARAM call which will fail if * we don't have permission to even render on this device */ - if (anv_gem_get_param(master_fd, I915_PARAM_CHIPSET_ID) == 0) { + if (!intel_gem_get_param(master_fd, I915_PARAM_CHIPSET_ID, &val) || !val) { close(master_fd); master_fd = -1; } diff --git a/src/intel/vulkan/anv_gem.c b/src/intel/vulkan/anv_gem.c index 6c5317dc31f..4b52767045f 100644 --- a/src/intel/vulkan/anv_gem.c +++ b/src/intel/vulkan/anv_gem.c @@ -278,23 +278,6 @@ anv_gem_set_tiling(struct anv_device *device, return ret; } -int -anv_gem_get_param(int fd, uint32_t param) -{ - int tmp; - - drm_i915_getparam_t gp = { - .param = param, - .value = &tmp, - }; - - int ret = intel_ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp); - if (ret == 0) - return tmp; - - return 0; -} - bool anv_gem_has_context_priority(int fd, VkQueueGlobalPriorityKHR priority) { diff --git a/src/intel/vulkan/anv_gem_stubs.c b/src/intel/vulkan/anv_gem_stubs.c index 8b0dc4cf9ca..c190471273a 100644 --- a/src/intel/vulkan/anv_gem_stubs.c +++ b/src/intel/vulkan/anv_gem_stubs.c @@ -118,12 +118,6 @@ anv_gem_set_caching(struct anv_device *device, uint32_t gem_handle, return 0; } -int -anv_gem_get_param(int fd, uint32_t param) -{ - unreachable("Unused"); -} - int anv_gem_set_context_param(int fd, uint32_t context, uint32_t param, uint64_t value) { diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index fc307d7bb06..7104101c1fe 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -1349,7 +1349,6 @@ int anv_gem_set_tiling(struct anv_device *device, uint32_t gem_handle, bool anv_gem_has_context_priority(int fd, VkQueueGlobalPriorityKHR priority); int anv_gem_set_context_param(int fd, uint32_t context, uint32_t param, uint64_t value); -int anv_gem_get_param(int fd, uint32_t param); int anv_gem_get_tiling(struct anv_device *device, uint32_t gem_handle); int anv_gem_context_get_reset_stats(int fd, int context, uint32_t *active, uint32_t *pending); diff --git a/src/intel/vulkan_hasvk/anv_device.c b/src/intel/vulkan_hasvk/anv_device.c index 6e5c2e2259f..5d3ed882079 100644 --- a/src/intel/vulkan_hasvk/anv_device.c +++ b/src/intel/vulkan_hasvk/anv_device.c @@ -741,31 +741,31 @@ anv_physical_device_try_create(struct vk_instance *vk_instance, device->cmd_parser_version = -1; if (device->info.ver == 7) { - device->cmd_parser_version = - anv_gem_get_param(fd, I915_PARAM_CMD_PARSER_VERSION); - if (device->cmd_parser_version == -1) { + if (!intel_gem_get_param(fd, I915_PARAM_CMD_PARSER_VERSION, &device->cmd_parser_version) || + device->cmd_parser_version == -1) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "failed to get command parser version"); goto fail_base; } } - if (!anv_gem_get_param(fd, I915_PARAM_HAS_WAIT_TIMEOUT)) { + int val; + if (!intel_gem_get_param(fd, I915_PARAM_HAS_WAIT_TIMEOUT, &val) || !val) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "kernel missing gem wait"); goto fail_base; } - if (!anv_gem_get_param(fd, I915_PARAM_HAS_EXECBUF2)) { + if (!intel_gem_get_param(fd, I915_PARAM_HAS_EXECBUF2, &val) || !val) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "kernel missing execbuf2"); goto fail_base; } if (!device->info.has_llc && - anv_gem_get_param(fd, I915_PARAM_MMAP_VERSION) < 1) { - result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, - "kernel missing wc mmap"); + (!intel_gem_get_param(fd, I915_PARAM_MMAP_VERSION, &val) || val < 1)) { + result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, + "kernel missing wc mmap"); goto fail_base; } @@ -773,20 +773,22 @@ anv_physical_device_try_create(struct vk_instance *vk_instance, device->info.platform == INTEL_PLATFORM_CHV; if (!device->use_relocations && - !anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN)) { + (!intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN, &val) || !val)) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "kernel missing softpin"); goto fail_alloc; } - if (!anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_FENCE_ARRAY)) { + if (!intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_FENCE_ARRAY, &val) || !val) { result = vk_errorf(device, VK_ERROR_INITIALIZATION_FAILED, "kernel missing syncobj support"); goto fail_base; } - device->has_exec_async = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_ASYNC); - device->has_exec_capture = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_CAPTURE); + if (intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_ASYNC, &val)) + device->has_exec_async = val; + if (intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_CAPTURE, &val)) + device->has_exec_capture = val; /* Start with medium; sorted low to high */ const int priorities[] = { @@ -817,11 +819,11 @@ anv_physical_device_try_create(struct vk_instance *vk_instance, assert(device->supports_48bit_addresses == !device->use_relocations); device->use_softpin = !device->use_relocations; - device->has_context_isolation = - anv_gem_get_param(fd, I915_PARAM_HAS_CONTEXT_ISOLATION); + if (intel_gem_get_param(fd, I915_PARAM_HAS_CONTEXT_ISOLATION, &val)) + device->has_context_isolation = val; - device->has_exec_timeline = - anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_TIMELINE_FENCES); + if (intel_gem_get_param(fd, I915_PARAM_HAS_EXEC_TIMELINE_FENCES, &val)) + device->has_exec_timeline = val; if (debug_get_bool_option("ANV_QUEUE_THREAD_DISABLE", false)) device->has_exec_timeline = false; @@ -880,11 +882,11 @@ anv_physical_device_try_create(struct vk_instance *vk_instance, device->always_flush_cache = INTEL_DEBUG(DEBUG_STALL) || driQueryOptionb(&instance->dri_options, "always_flush_cache"); - device->has_mmap_offset = - anv_gem_get_param(fd, I915_PARAM_MMAP_GTT_VERSION) >= 4; + if (intel_gem_get_param(fd, I915_PARAM_MMAP_GTT_VERSION, &val)) + device->has_mmap_offset = val >= 4; - device->has_userptr_probe = - anv_gem_get_param(fd, I915_PARAM_HAS_USERPTR_PROBE); + if (intel_gem_get_param(fd, I915_PARAM_HAS_USERPTR_PROBE, &val)) + device->has_userptr_probe = val; device->compiler = brw_compiler_create(NULL, &device->info); if (device->compiler == NULL) { @@ -909,10 +911,11 @@ anv_physical_device_try_create(struct vk_instance *vk_instance, if (instance->vk.enabled_extensions.KHR_display) { master_fd = open(primary_path, O_RDWR | O_CLOEXEC); if (master_fd >= 0) { + int val; /* prod the device with a GETPARAM call which will fail if * we don't have permission to even render on this device */ - if (anv_gem_get_param(master_fd, I915_PARAM_CHIPSET_ID) == 0) { + if (!intel_gem_get_param(master_fd, I915_PARAM_CHIPSET_ID, &val) || !val) { close(master_fd); master_fd = -1; } diff --git a/src/intel/vulkan_hasvk/anv_gem.c b/src/intel/vulkan_hasvk/anv_gem.c index a9582fa4bba..56c7162a042 100644 --- a/src/intel/vulkan_hasvk/anv_gem.c +++ b/src/intel/vulkan_hasvk/anv_gem.c @@ -249,23 +249,6 @@ anv_gem_set_tiling(struct anv_device *device, return ret; } -int -anv_gem_get_param(int fd, uint32_t param) -{ - int tmp; - - drm_i915_getparam_t gp = { - .param = param, - .value = &tmp, - }; - - int ret = intel_ioctl(fd, DRM_IOCTL_I915_GETPARAM, &gp); - if (ret == 0) - return tmp; - - return 0; -} - bool anv_gem_has_context_priority(int fd, int priority) { diff --git a/src/intel/vulkan_hasvk/anv_gem_stubs.c b/src/intel/vulkan_hasvk/anv_gem_stubs.c index 0c99f02517b..7b2e1fb181e 100644 --- a/src/intel/vulkan_hasvk/anv_gem_stubs.c +++ b/src/intel/vulkan_hasvk/anv_gem_stubs.c @@ -110,12 +110,6 @@ anv_gem_set_caching(struct anv_device *device, uint32_t gem_handle, return 0; } -int -anv_gem_get_param(int fd, uint32_t param) -{ - unreachable("Unused"); -} - int anv_gem_set_context_param(int fd, uint32_t context, uint32_t param, uint64_t value) { diff --git a/src/intel/vulkan_hasvk/anv_private.h b/src/intel/vulkan_hasvk/anv_private.h index cd5e215d1c9..7d3c81ab8b2 100644 --- a/src/intel/vulkan_hasvk/anv_private.h +++ b/src/intel/vulkan_hasvk/anv_private.h @@ -1384,7 +1384,6 @@ int anv_gem_set_tiling(struct anv_device *device, uint32_t gem_handle, bool anv_gem_has_context_priority(int fd, int priority); int anv_gem_set_context_param(int fd, uint32_t context, uint32_t param, uint64_t value); -int anv_gem_get_param(int fd, uint32_t param); int anv_gem_get_tiling(struct anv_device *device, uint32_t gem_handle); int anv_gem_context_get_reset_stats(int fd, int context, uint32_t *active, uint32_t *pending);