anv: consolidate environment variables
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34332>
This commit is contained in:
committed by
Marge Bot
parent
713cb0fdc1
commit
789f13359a
@@ -3,8 +3,7 @@
|
|||||||
VARS=(
|
VARS=(
|
||||||
ACO_DEBUG
|
ACO_DEBUG
|
||||||
ANGLE_TAG
|
ANGLE_TAG
|
||||||
ANV_VIDEO_DECODE
|
ANV_DEBUG
|
||||||
ANV_VIDEO_ENCODE
|
|
||||||
ARTIFACTS_BASE_URL
|
ARTIFACTS_BASE_URL
|
||||||
ASAN_OPTIONS
|
ASAN_OPTIONS
|
||||||
BASE_SYSTEM_FORK_HOST_PREFIX
|
BASE_SYSTEM_FORK_HOST_PREFIX
|
||||||
|
|||||||
@@ -860,17 +860,29 @@ Intel driver environment variables
|
|||||||
Anvil(ANV) driver environment variables
|
Anvil(ANV) driver environment variables
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
.. envvar:: ANV_DISABLE_SECONDARY_CMD_BUFFER_CALLS
|
.. envvar:: ANV_DEBUG
|
||||||
|
|
||||||
|
Accepts the following comma-separated list of flags:
|
||||||
|
|
||||||
|
``bindless``
|
||||||
|
Forces all descriptor sets to use the internal :ref:`Bindless model`
|
||||||
|
``no-gpl``
|
||||||
|
Disables `VK_KHR_graphics_pipeline_library` support
|
||||||
|
``no-secondary-call``
|
||||||
|
Disables secondary command buffer calls
|
||||||
|
``no-sparse``
|
||||||
|
Disables sparse support
|
||||||
|
``sparse-trtt``
|
||||||
|
Forces use of TR-TT hardware for sparse support
|
||||||
|
``video-decode``
|
||||||
|
Enables video decoding support
|
||||||
|
``video-encode``
|
||||||
|
Enables video encoding support
|
||||||
|
|
||||||
If defined to ``1`` or ``true``, this will prevent usage of self
|
If defined to ``1`` or ``true``, this will prevent usage of self
|
||||||
modifying command buffers to implement ``vkCmdExecuteCommands``. As
|
modifying command buffers to implement ``vkCmdExecuteCommands``. As
|
||||||
a result of this, it will also disable :ext:`VK_KHR_performance_query`.
|
a result of this, it will also disable :ext:`VK_KHR_performance_query`.
|
||||||
|
|
||||||
.. envvar:: ANV_ALWAYS_BINDLESS
|
|
||||||
|
|
||||||
If defined to ``1`` or ``true``, this forces all descriptor sets to
|
|
||||||
use the internal :ref:`Bindless model`.
|
|
||||||
|
|
||||||
.. envvar:: ANV_PRIMITIVE_REPLICATION_MAX_VIEWS
|
.. envvar:: ANV_PRIMITIVE_REPLICATION_MAX_VIEWS
|
||||||
|
|
||||||
Specifies up to how many view shaders can be lowered to handle
|
Specifies up to how many view shaders can be lowered to handle
|
||||||
@@ -878,10 +890,9 @@ Anvil(ANV) driver environment variables
|
|||||||
using instanced rendering. If unspecified, the value default to
|
using instanced rendering. If unspecified, the value default to
|
||||||
``2``.
|
``2``.
|
||||||
|
|
||||||
.. envvar:: ANV_NO_GPL
|
.. envvar:: ANV_PRINTF_BUFFER_SIZE
|
||||||
|
|
||||||
If set to 1, true, or yes, then VK_EXT_graphics_pipeline_library
|
Specifies the size of the printf buffer.
|
||||||
will be disabled.
|
|
||||||
|
|
||||||
.. envvar:: ANV_QUEUE_OVERRIDE
|
.. envvar:: ANV_QUEUE_OVERRIDE
|
||||||
|
|
||||||
|
|||||||
@@ -352,8 +352,7 @@
|
|||||||
- .anv-rules
|
- .anv-rules
|
||||||
variables:
|
variables:
|
||||||
DRIVER_NAME: anv
|
DRIVER_NAME: anv
|
||||||
ANV_VIDEO_DECODE: "true"
|
ANV_DEBUG: "video-decode,video-encode"
|
||||||
ANV_VIDEO_ENCODE: "true"
|
|
||||||
|
|
||||||
.iris-test:
|
.iris-test:
|
||||||
extends:
|
extends:
|
||||||
|
|||||||
@@ -1067,7 +1067,7 @@ anv_cmd_buffer_end_batch_buffer(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
* actual ExecuteCommands implementation.
|
* actual ExecuteCommands implementation.
|
||||||
*/
|
*/
|
||||||
const uint32_t length = cmd_buffer->batch.next - cmd_buffer->batch.start;
|
const uint32_t length = cmd_buffer->batch.next - cmd_buffer->batch.start;
|
||||||
if (cmd_buffer->device->physical->use_call_secondary) {
|
if (!(cmd_buffer->device->physical->instance->debug & ANV_DEBUG_NO_SECONDARY_CALL)) {
|
||||||
cmd_buffer->exec_mode = ANV_CMD_BUFFER_EXEC_MODE_CALL_AND_RETURN;
|
cmd_buffer->exec_mode = ANV_CMD_BUFFER_EXEC_MODE_CALL_AND_RETURN;
|
||||||
|
|
||||||
void *jump_addr =
|
void *jump_addr =
|
||||||
|
|||||||
@@ -448,7 +448,7 @@ anv_descriptor_requires_bindless(const struct anv_physical_device *pdevice,
|
|||||||
const struct anv_descriptor_set_layout *set,
|
const struct anv_descriptor_set_layout *set,
|
||||||
const struct anv_descriptor_set_binding_layout *binding)
|
const struct anv_descriptor_set_binding_layout *binding)
|
||||||
{
|
{
|
||||||
if (pdevice->always_use_bindless)
|
if (pdevice->instance->debug & ANV_DEBUG_BINDLESS)
|
||||||
return anv_descriptor_supports_bindless(pdevice, set, binding);
|
return anv_descriptor_supports_bindless(pdevice, set, binding);
|
||||||
|
|
||||||
if (set->flags & VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR)
|
if (set->flags & VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR)
|
||||||
|
|||||||
@@ -682,11 +682,11 @@ anv_get_image_format_features2(const struct anv_physical_device *physical_device
|
|||||||
assert(aspects & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV);
|
assert(aspects & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV);
|
||||||
|
|
||||||
if (anv_format->flags & ANV_FORMAT_FLAG_CAN_VIDEO) {
|
if (anv_format->flags & ANV_FORMAT_FLAG_CAN_VIDEO) {
|
||||||
flags |= physical_device->video_decode_enabled ?
|
flags |= (physical_device->instance->debug & ANV_DEBUG_VIDEO_DECODE) ?
|
||||||
VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR |
|
VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR |
|
||||||
VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR : 0;
|
VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR : 0;
|
||||||
|
|
||||||
flags |= physical_device->video_encode_enabled ?
|
flags |= (physical_device->instance->debug & ANV_DEBUG_VIDEO_ENCODE) ?
|
||||||
VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR |
|
VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR |
|
||||||
VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR : 0;
|
VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR : 0;
|
||||||
}
|
}
|
||||||
@@ -1646,7 +1646,7 @@ anv_get_image_format_properties(
|
|||||||
"requires VK_IMAGE_TYPE_2D");
|
"requires VK_IMAGE_TYPE_2D");
|
||||||
goto unsupported;
|
goto unsupported;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isl_mod_info->modifier != DRM_FORMAT_MOD_LINEAR)
|
if (isl_mod_info->modifier != DRM_FORMAT_MOD_LINEAR)
|
||||||
maxArraySize = 1;
|
maxArraySize = 1;
|
||||||
maxMipLevels = 1;
|
maxMipLevels = 1;
|
||||||
|
|||||||
@@ -71,6 +71,16 @@ static const driOptionDescription anv_dri_options[] = {
|
|||||||
DRI_CONF_SECTION_END
|
DRI_CONF_SECTION_END
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct debug_control debug_control[] = {
|
||||||
|
{ "bindless", ANV_DEBUG_BINDLESS},
|
||||||
|
{ "no-gpl", ANV_DEBUG_NO_GPL},
|
||||||
|
{ "no-sparse", ANV_DEBUG_NO_SPARSE},
|
||||||
|
{ "sparse-trtt", ANV_DEBUG_SPARSE_TRTT},
|
||||||
|
{ "video-decode", ANV_DEBUG_VIDEO_DECODE},
|
||||||
|
{ "video-encode", ANV_DEBUG_VIDEO_ENCODE},
|
||||||
|
{ NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
VkResult anv_EnumerateInstanceVersion(
|
VkResult anv_EnumerateInstanceVersion(
|
||||||
uint32_t* pApiVersion)
|
uint32_t* pApiVersion)
|
||||||
{
|
{
|
||||||
@@ -255,6 +265,9 @@ VkResult anv_CreateInstance(
|
|||||||
|
|
||||||
anv_init_dri_options(instance);
|
anv_init_dri_options(instance);
|
||||||
|
|
||||||
|
instance->debug = parse_debug_string(os_get_option("ANV_DEBUG"),
|
||||||
|
debug_control);
|
||||||
|
|
||||||
intel_driver_ds_init();
|
intel_driver_ds_init();
|
||||||
|
|
||||||
*pInstance = anv_instance_to_handle(instance);
|
*pInstance = anv_instance_to_handle(instance);
|
||||||
|
|||||||
@@ -2283,7 +2283,7 @@ binding_should_use_surface_binding_table(const struct apply_pipeline_layout_stat
|
|||||||
if ((bind_layout->data & ANV_DESCRIPTOR_BTI_SURFACE_STATE) == 0)
|
if ((bind_layout->data & ANV_DESCRIPTOR_BTI_SURFACE_STATE) == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (state->pdevice->always_use_bindless &&
|
if ((state->pdevice->instance->debug & ANV_DEBUG_BINDLESS) &&
|
||||||
(bind_layout->data & ANV_DESCRIPTOR_SURFACE))
|
(bind_layout->data & ANV_DESCRIPTOR_SURFACE))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -2301,7 +2301,7 @@ binding_should_use_sampler_binding_table(const struct apply_pipeline_layout_stat
|
|||||||
if ((binding->data & ANV_DESCRIPTOR_BTI_SAMPLER_STATE) == 0)
|
if ((binding->data & ANV_DESCRIPTOR_BTI_SAMPLER_STATE) == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (state->pdevice->always_use_bindless &&
|
if ((state->pdevice->instance->debug & ANV_DEBUG_BINDLESS) &&
|
||||||
(binding->data & ANV_DESCRIPTOR_SAMPLER))
|
(binding->data & ANV_DESCRIPTOR_SAMPLER))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|||||||
@@ -131,6 +131,8 @@ get_device_extensions(const struct anv_physical_device *device,
|
|||||||
(device->sync_syncobj_type.features & VK_SYNC_FEATURE_CPU_WAIT) != 0;
|
(device->sync_syncobj_type.features & VK_SYNC_FEATURE_CPU_WAIT) != 0;
|
||||||
|
|
||||||
const bool rt_enabled = ANV_SUPPORT_RT && device->info.has_ray_tracing;
|
const bool rt_enabled = ANV_SUPPORT_RT && device->info.has_ray_tracing;
|
||||||
|
const bool video_decode_enabled = device->instance->debug & ANV_DEBUG_VIDEO_DECODE;
|
||||||
|
const bool video_encode_enabled = device->instance->debug & ANV_DEBUG_VIDEO_ENCODE;
|
||||||
|
|
||||||
*ext = (struct vk_device_extension_table) {
|
*ext = (struct vk_device_extension_table) {
|
||||||
.KHR_8bit_storage = true,
|
.KHR_8bit_storage = true,
|
||||||
@@ -185,7 +187,7 @@ get_device_extensions(const struct anv_physical_device *device,
|
|||||||
device->perf &&
|
device->perf &&
|
||||||
(intel_perf_has_hold_preemption(device->perf) ||
|
(intel_perf_has_hold_preemption(device->perf) ||
|
||||||
INTEL_DEBUG(DEBUG_NO_OACONFIG)) &&
|
INTEL_DEBUG(DEBUG_NO_OACONFIG)) &&
|
||||||
device->use_call_secondary,
|
!(device->instance->debug & ANV_DEBUG_NO_SECONDARY_CALL),
|
||||||
.KHR_pipeline_executable_properties = true,
|
.KHR_pipeline_executable_properties = true,
|
||||||
.KHR_pipeline_library = true,
|
.KHR_pipeline_library = true,
|
||||||
/* Hide these behind dri configs for now since we cannot implement it reliably on
|
/* Hide these behind dri configs for now since we cannot implement it reliably on
|
||||||
@@ -235,21 +237,21 @@ get_device_extensions(const struct anv_physical_device *device,
|
|||||||
.KHR_uniform_buffer_standard_layout = true,
|
.KHR_uniform_buffer_standard_layout = true,
|
||||||
.KHR_variable_pointers = true,
|
.KHR_variable_pointers = true,
|
||||||
.KHR_vertex_attribute_divisor = true,
|
.KHR_vertex_attribute_divisor = true,
|
||||||
.KHR_video_queue = device->video_decode_enabled || device->video_encode_enabled,
|
.KHR_video_queue = video_decode_enabled || video_encode_enabled,
|
||||||
.KHR_video_decode_queue = device->video_decode_enabled,
|
.KHR_video_decode_queue = video_decode_enabled,
|
||||||
.KHR_video_decode_h264 = VIDEO_CODEC_H264DEC && device->video_decode_enabled,
|
.KHR_video_decode_h264 = VIDEO_CODEC_H264DEC && video_decode_enabled,
|
||||||
.KHR_video_decode_h265 = VIDEO_CODEC_H265DEC && device->video_decode_enabled,
|
.KHR_video_decode_h265 = VIDEO_CODEC_H265DEC && video_decode_enabled,
|
||||||
.KHR_video_decode_av1 = device->info.ver >= 12 && VIDEO_CODEC_AV1DEC && device->video_decode_enabled,
|
.KHR_video_decode_av1 = device->info.ver >= 12 && VIDEO_CODEC_AV1DEC && video_decode_enabled,
|
||||||
.KHR_video_encode_queue = device->video_encode_enabled,
|
.KHR_video_encode_queue = video_encode_enabled,
|
||||||
.KHR_video_encode_h264 = VIDEO_CODEC_H264ENC && device->video_encode_enabled,
|
.KHR_video_encode_h264 = VIDEO_CODEC_H264ENC && video_encode_enabled,
|
||||||
.KHR_video_encode_h265 = device->info.ver >= 12 && VIDEO_CODEC_H265ENC && device->video_encode_enabled,
|
.KHR_video_encode_h265 = device->info.ver >= 12 && VIDEO_CODEC_H265ENC && video_encode_enabled,
|
||||||
.KHR_video_maintenance1 = (device->video_decode_enabled &&
|
.KHR_video_maintenance1 = (video_decode_enabled &&
|
||||||
(VIDEO_CODEC_H264DEC || VIDEO_CODEC_H265DEC)) ||
|
(VIDEO_CODEC_H264DEC || VIDEO_CODEC_H265DEC)) ||
|
||||||
(device->video_encode_enabled &&
|
(video_encode_enabled &&
|
||||||
(VIDEO_CODEC_H264ENC || VIDEO_CODEC_H265ENC)),
|
(VIDEO_CODEC_H264ENC || VIDEO_CODEC_H265ENC)),
|
||||||
.KHR_video_maintenance2 = (device->video_decode_enabled &&
|
.KHR_video_maintenance2 = (video_decode_enabled &&
|
||||||
(VIDEO_CODEC_H264DEC || VIDEO_CODEC_H265DEC)) ||
|
(VIDEO_CODEC_H264DEC || VIDEO_CODEC_H265DEC)) ||
|
||||||
(device->video_encode_enabled &&
|
(video_encode_enabled &&
|
||||||
(VIDEO_CODEC_H264ENC || VIDEO_CODEC_H265ENC)),
|
(VIDEO_CODEC_H264ENC || VIDEO_CODEC_H265ENC)),
|
||||||
.KHR_vulkan_memory_model = true,
|
.KHR_vulkan_memory_model = true,
|
||||||
.KHR_workgroup_memory_explicit_layout = true,
|
.KHR_workgroup_memory_explicit_layout = true,
|
||||||
@@ -287,7 +289,7 @@ get_device_extensions(const struct anv_physical_device *device,
|
|||||||
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
|
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
|
||||||
.EXT_global_priority_query = device->max_context_priority >=
|
.EXT_global_priority_query = device->max_context_priority >=
|
||||||
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
|
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
|
||||||
.EXT_graphics_pipeline_library = !debug_get_bool_option("ANV_NO_GPL", false),
|
.EXT_graphics_pipeline_library = !(device->instance->debug & ANV_DEBUG_NO_GPL),
|
||||||
.EXT_hdr_metadata = true,
|
.EXT_hdr_metadata = true,
|
||||||
.EXT_host_image_copy = !device->emu_astc_ldr,
|
.EXT_host_image_copy = !device->emu_astc_ldr,
|
||||||
.EXT_host_query_reset = true,
|
.EXT_host_query_reset = true,
|
||||||
@@ -2173,8 +2175,9 @@ anv_physical_device_init_uuids(struct anv_physical_device *device)
|
|||||||
_mesa_sha1_init(&sha1_ctx);
|
_mesa_sha1_init(&sha1_ctx);
|
||||||
_mesa_sha1_update(&sha1_ctx, build_id_data(note), build_id_len);
|
_mesa_sha1_update(&sha1_ctx, build_id_data(note), build_id_len);
|
||||||
brw_device_sha1_update(&sha1_ctx, &device->info);
|
brw_device_sha1_update(&sha1_ctx, &device->info);
|
||||||
_mesa_sha1_update(&sha1_ctx, &device->always_use_bindless,
|
bool always_use_bindless = !!(device->instance->debug & ANV_DEBUG_BINDLESS);
|
||||||
sizeof(device->always_use_bindless));
|
_mesa_sha1_update(&sha1_ctx, &always_use_bindless,
|
||||||
|
sizeof(always_use_bindless));
|
||||||
_mesa_sha1_final(&sha1_ctx, sha1);
|
_mesa_sha1_final(&sha1_ctx, sha1);
|
||||||
memcpy(device->pipeline_cache_uuid, sha1, VK_UUID_SIZE);
|
memcpy(device->pipeline_cache_uuid, sha1, VK_UUID_SIZE);
|
||||||
|
|
||||||
@@ -2351,7 +2354,8 @@ anv_physical_device_init_queue_families(struct anv_physical_device *pdevice)
|
|||||||
.engine_class = compute_class,
|
.engine_class = compute_class,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (v_count > 0 && (pdevice->video_decode_enabled || pdevice->video_encode_enabled)) {
|
if (v_count > 0 && ((pdevice->instance->debug & ANV_DEBUG_VIDEO_DECODE) ||
|
||||||
|
(pdevice->instance->debug & ANV_DEBUG_VIDEO_ENCODE))) {
|
||||||
/* HEVC support on Gfx9 is only available on VCS0. So limit the number of video queues
|
/* HEVC support on Gfx9 is only available on VCS0. So limit the number of video queues
|
||||||
* to the first VCS engine instance.
|
* to the first VCS engine instance.
|
||||||
*
|
*
|
||||||
@@ -2364,8 +2368,10 @@ anv_physical_device_init_queue_families(struct anv_physical_device *pdevice)
|
|||||||
*/
|
*/
|
||||||
/* TODO: enable protected content on video queue */
|
/* TODO: enable protected content on video queue */
|
||||||
pdevice->queue.families[family_count++] = (struct anv_queue_family) {
|
pdevice->queue.families[family_count++] = (struct anv_queue_family) {
|
||||||
.queueFlags = (pdevice->video_decode_enabled ? VK_QUEUE_VIDEO_DECODE_BIT_KHR : 0) |
|
.queueFlags = ((pdevice->instance->debug & ANV_DEBUG_VIDEO_DECODE) ?
|
||||||
(pdevice->video_encode_enabled ? VK_QUEUE_VIDEO_ENCODE_BIT_KHR : 0),
|
VK_QUEUE_VIDEO_DECODE_BIT_KHR : 0) |
|
||||||
|
((pdevice->instance->debug & ANV_DEBUG_VIDEO_ENCODE) ?
|
||||||
|
VK_QUEUE_VIDEO_ENCODE_BIT_KHR : 0),
|
||||||
.queueCount = pdevice->info.ver == 9 ? MIN2(1, v_count) : v_count,
|
.queueCount = pdevice->info.ver == 9 ? MIN2(1, v_count) : v_count,
|
||||||
.engine_class = INTEL_ENGINE_CLASS_VIDEO,
|
.engine_class = INTEL_ENGINE_CLASS_VIDEO,
|
||||||
};
|
};
|
||||||
@@ -2571,15 +2577,6 @@ anv_physical_device_try_create(struct vk_instance *vk_instance,
|
|||||||
|
|
||||||
device->vk.pipeline_cache_import_ops = anv_cache_import_ops;
|
device->vk.pipeline_cache_import_ops = anv_cache_import_ops;
|
||||||
|
|
||||||
device->always_use_bindless =
|
|
||||||
debug_get_bool_option("ANV_ALWAYS_BINDLESS", false);
|
|
||||||
|
|
||||||
device->use_call_secondary =
|
|
||||||
!debug_get_bool_option("ANV_DISABLE_SECONDARY_CMD_BUFFER_CALLS", false);
|
|
||||||
|
|
||||||
device->video_decode_enabled = debug_get_bool_option("ANV_VIDEO_DECODE", false);
|
|
||||||
device->video_encode_enabled = debug_get_bool_option("ANV_VIDEO_ENCODE", false);
|
|
||||||
|
|
||||||
device->uses_ex_bso = device->info.verx10 >= 125;
|
device->uses_ex_bso = device->info.verx10 >= 125;
|
||||||
|
|
||||||
/* For now always use indirect descriptors. We'll update this
|
/* For now always use indirect descriptors. We'll update this
|
||||||
@@ -2600,9 +2597,9 @@ anv_physical_device_try_create(struct vk_instance *vk_instance,
|
|||||||
device->uses_relocs = device->info.kmd_type != INTEL_KMD_TYPE_XE;
|
device->uses_relocs = device->info.kmd_type != INTEL_KMD_TYPE_XE;
|
||||||
|
|
||||||
/* While xe.ko can use both vm_bind and TR-TT, i915.ko only has TR-TT. */
|
/* While xe.ko can use both vm_bind and TR-TT, i915.ko only has TR-TT. */
|
||||||
if (debug_get_bool_option("ANV_SPARSE", true)) {
|
if (!(instance->debug & ANV_DEBUG_NO_SPARSE)) {
|
||||||
if (device->info.kmd_type == INTEL_KMD_TYPE_XE) {
|
if (device->info.kmd_type == INTEL_KMD_TYPE_XE) {
|
||||||
if (debug_get_bool_option("ANV_SPARSE_USE_TRTT", false))
|
if (instance->debug & ANV_DEBUG_SPARSE_TRTT)
|
||||||
device->sparse_type = ANV_SPARSE_TYPE_TRTT;
|
device->sparse_type = ANV_SPARSE_TYPE_TRTT;
|
||||||
else
|
else
|
||||||
device->sparse_type = ANV_SPARSE_TYPE_VM_BIND;
|
device->sparse_type = ANV_SPARSE_TYPE_VM_BIND;
|
||||||
|
|||||||
@@ -1025,9 +1025,6 @@ struct anv_physical_device {
|
|||||||
char path[20];
|
char path[20];
|
||||||
struct intel_device_info info;
|
struct intel_device_info info;
|
||||||
|
|
||||||
bool video_decode_enabled;
|
|
||||||
bool video_encode_enabled;
|
|
||||||
|
|
||||||
struct brw_compiler * compiler;
|
struct brw_compiler * compiler;
|
||||||
struct isl_device isl_dev;
|
struct isl_device isl_dev;
|
||||||
struct intel_perf_config * perf;
|
struct intel_perf_config * perf;
|
||||||
@@ -1041,9 +1038,6 @@ struct anv_physical_device {
|
|||||||
VkQueueGlobalPriorityKHR max_context_priority;
|
VkQueueGlobalPriorityKHR max_context_priority;
|
||||||
uint64_t gtt_size;
|
uint64_t gtt_size;
|
||||||
|
|
||||||
bool always_use_bindless;
|
|
||||||
bool use_call_secondary;
|
|
||||||
|
|
||||||
/** True if we can use timeline semaphores through execbuf */
|
/** True if we can use timeline semaphores through execbuf */
|
||||||
bool has_exec_timeline;
|
bool has_exec_timeline;
|
||||||
|
|
||||||
@@ -1296,12 +1290,24 @@ anv_physical_device_has_vram(const struct anv_physical_device *device)
|
|||||||
return device->vram_mappable.size > 0;
|
return device->vram_mappable.size > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum anv_debug {
|
||||||
|
ANV_DEBUG_BINDLESS = BITFIELD_BIT(0),
|
||||||
|
ANV_DEBUG_NO_GPL = BITFIELD_BIT(1),
|
||||||
|
ANV_DEBUG_NO_SECONDARY_CALL = BITFIELD_BIT(2),
|
||||||
|
ANV_DEBUG_NO_SPARSE = BITFIELD_BIT(3),
|
||||||
|
ANV_DEBUG_SPARSE_TRTT = BITFIELD_BIT(4),
|
||||||
|
ANV_DEBUG_VIDEO_DECODE = BITFIELD_BIT(5),
|
||||||
|
ANV_DEBUG_VIDEO_ENCODE = BITFIELD_BIT(6),
|
||||||
|
};
|
||||||
|
|
||||||
struct anv_instance {
|
struct anv_instance {
|
||||||
struct vk_instance vk;
|
struct vk_instance vk;
|
||||||
|
|
||||||
struct driOptionCache dri_options;
|
struct driOptionCache dri_options;
|
||||||
struct driOptionCache available_dri_options;
|
struct driOptionCache available_dri_options;
|
||||||
|
|
||||||
|
enum anv_debug debug;
|
||||||
|
|
||||||
int mesh_conv_prim_attrs_to_vert_attrs;
|
int mesh_conv_prim_attrs_to_vert_attrs;
|
||||||
bool enable_tbimr;
|
bool enable_tbimr;
|
||||||
bool enable_vf_distribution;
|
bool enable_vf_distribution;
|
||||||
|
|||||||
Reference in New Issue
Block a user