mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-19 15:48:19 +02:00
The game aliases two images. It binds a memory object to two different images, the first one being an image with 4 mips and the second with only one mip but the bind offset is incorrect. It's like it queried the first image size with different usage flags, so that DCC was disabled. Force disabling DCC for mips fixes the incorrect rendering and doesn't hurt performance. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10200 Cc: mesa-stable Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32190>
90 lines
2.4 KiB
C
90 lines
2.4 KiB
C
/*
|
|
* Copyright © 2016 Red Hat.
|
|
* Copyright © 2016 Bas Nieuwenhuizen
|
|
*
|
|
* based in part on anv driver which is:
|
|
* Copyright © 2015 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#ifndef RADV_INSTANCE_H
|
|
#define RADV_INSTANCE_H
|
|
|
|
#include "util/simple_mtx.h"
|
|
#include "util/xmlconfig.h"
|
|
#include "radv_radeon_winsys.h"
|
|
#include "vk_instance.h"
|
|
|
|
#ifdef ANDROID_STRICT
|
|
#define RADV_API_VERSION VK_MAKE_VERSION(1, 1, VK_HEADER_VERSION)
|
|
#else
|
|
#define RADV_API_VERSION VK_MAKE_VERSION(1, 3, VK_HEADER_VERSION)
|
|
#endif
|
|
|
|
enum radv_trace_mode {
|
|
/** Radeon GPU Profiler */
|
|
RADV_TRACE_MODE_RGP = 1 << VK_TRACE_MODE_COUNT,
|
|
|
|
/** Radeon Raytracing Analyzer */
|
|
RADV_TRACE_MODE_RRA = 1 << (VK_TRACE_MODE_COUNT + 1),
|
|
|
|
/** Gather context rolls of submitted command buffers */
|
|
RADV_TRACE_MODE_CTX_ROLLS = 1 << (VK_TRACE_MODE_COUNT + 2),
|
|
};
|
|
|
|
struct radv_instance {
|
|
struct vk_instance vk;
|
|
|
|
VkAllocationCallbacks alloc;
|
|
|
|
simple_mtx_t shader_dump_mtx;
|
|
|
|
uint64_t debug_flags;
|
|
uint64_t perftest_flags;
|
|
uint64_t trap_excp_flags;
|
|
enum radeon_ctx_pstate profile_pstate;
|
|
|
|
struct {
|
|
struct driOptionCache options;
|
|
struct driOptionCache available_options;
|
|
|
|
bool enable_mrt_output_nan_fixup;
|
|
bool disable_tc_compat_htile_in_general;
|
|
bool disable_shrink_image_store;
|
|
bool disable_aniso_single_level;
|
|
bool disable_trunc_coord;
|
|
bool disable_depth_storage;
|
|
bool zero_vram;
|
|
bool disable_sinking_load_input_fs;
|
|
bool flush_before_query_copy;
|
|
bool enable_unified_heap_on_apu;
|
|
bool tex_non_uniform;
|
|
bool ssbo_non_uniform;
|
|
bool flush_before_timestamp_write;
|
|
bool force_rt_wave64;
|
|
bool dual_color_blend_by_location;
|
|
bool legacy_sparse_binding;
|
|
bool force_pstate_peak_gfx11_dgpu;
|
|
bool clear_lds;
|
|
bool enable_khr_present_wait;
|
|
bool report_llvm9_version_string;
|
|
bool vk_require_etc2;
|
|
bool vk_require_astc;
|
|
bool disable_dcc_mips;
|
|
char *app_layer;
|
|
uint8_t override_graphics_shader_version;
|
|
uint8_t override_compute_shader_version;
|
|
uint8_t override_ray_tracing_shader_version;
|
|
int override_vram_size;
|
|
int override_uniform_offset_alignment;
|
|
} drirc;
|
|
};
|
|
|
|
VK_DEFINE_HANDLE_CASTS(radv_instance, vk.base, VkInstance, VK_OBJECT_TYPE_INSTANCE)
|
|
|
|
const char *radv_get_debug_option_name(int id);
|
|
|
|
const char *radv_get_perftest_option_name(int id);
|
|
|
|
#endif /* RADV_INSTANCE_H */
|