DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0)
DRI_CONF_VK_X11_STRICT_IMAGE_COUNT("false")
DRI_CONF_SECTION_END
+
+ DRI_CONF_SECTION_DEBUG
+ DRI_CONF_ALWAYS_FLUSH_CACHE("false")
+ DRI_CONF_SECTION_END
DRI_CONF_END;
/* This is probably far to big but it reflects the max size used for messages
device->has_mem_available = get_available_system_memory() != 0;
+ device->always_flush_cache =
+ driQueryOptionb(&instance->dri_options, "always_flush_cache");
+
/* Starting with Gen10, the timestamp frequency of the command streamer may
* vary from one part to another. We can query the value from the kernel.
*/
/** True if we can use bindless access for samplers */
bool has_bindless_samplers;
+ bool always_flush_cache;
+
struct anv_device_extension_table supported_extensions;
struct anv_physical_device_dispatch_table dispatch;
{
enum anv_pipe_bits bits = cmd_buffer->state.pending_pipe_bits;
+ if (cmd_buffer->device->instance->physicalDevice.always_flush_cache)
+ bits |= ANV_PIPE_FLUSH_BITS | ANV_PIPE_INVALIDATE_BITS;
+
/* Flushes are pipelined while invalidations are handled immediately.
* Therefore, if we're flushing anything then we need to schedule a stall
* before any invalidations can happen.