mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-16 01:08:05 +02:00
anv: add and use a drirc option to enable FullyCovered for vkd3d
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Tested-by: Caleb Callaway <caleb.callaway@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38879>
This commit is contained in:
parent
2ad92e3ea4
commit
756343271a
5 changed files with 18 additions and 2 deletions
|
|
@ -86,6 +86,7 @@ static const driOptionDescription anv_dri_options[] = {
|
|||
DRI_CONF_ENUM(2048, "2048 clocks")
|
||||
DRI_CONF_ENUM(4096, "4096 clocks"))
|
||||
DRI_CONF_ANV_UPPER_BOUND_DESCRIPTOR_POOL_SAMPLER(false)
|
||||
DRI_CONF_ANV_ENABLE_FULLY_COVERED(false)
|
||||
DRI_CONF_SECTION_END
|
||||
|
||||
DRI_CONF_SECTION_DEBUG
|
||||
|
|
@ -295,6 +296,8 @@ anv_init_dri_options(struct anv_instance *instance)
|
|||
driQueryOptionb(&instance->dri_options, "anv_barrier_post_untyped_clear_shader");
|
||||
instance->disable_push_constant_alloc =
|
||||
driQueryOptionb(&instance->dri_options, "intel_disable_push_constant_alloc");
|
||||
instance->enable_fully_covered =
|
||||
driQueryOptionb(&instance->dri_options, "anv_enable_fully_covered");
|
||||
|
||||
if (instance->vk.app_info.engine_name &&
|
||||
!strcmp(instance->vk.app_info.engine_name, "DXVK")) {
|
||||
|
|
|
|||
|
|
@ -1701,8 +1701,15 @@ get_properties(const struct anv_physical_device *pdevice,
|
|||
props->conservativePointAndLineRasterization = false;
|
||||
props->degenerateTrianglesRasterized = true;
|
||||
props->degenerateLinesRasterized = false;
|
||||
props->fullyCoveredFragmentShaderInputVariable = false;
|
||||
props->conservativeRasterizationPostDepthCoverage = true;
|
||||
|
||||
bool fully_covered = pdevice->instance->enable_fully_covered &&
|
||||
pdevice->info.verx10 >= 125;
|
||||
|
||||
props->fullyCoveredFragmentShaderInputVariable = fully_covered;
|
||||
/* InnerCoverage, used to implement fully covered, is mutually exclusive
|
||||
* with PostDepthCoverage.
|
||||
*/
|
||||
props->conservativeRasterizationPostDepthCoverage = !fully_covered;
|
||||
}
|
||||
|
||||
/* VK_EXT_custom_border_color */
|
||||
|
|
|
|||
|
|
@ -1774,6 +1774,7 @@ struct anv_instance {
|
|||
bool force_guc_low_latency;
|
||||
bool emulate_read_without_format;
|
||||
bool promote_cbv_to_push_buffers;
|
||||
bool enable_fully_covered;
|
||||
|
||||
/**
|
||||
* Workarounds for game bugs.
|
||||
|
|
|
|||
|
|
@ -1191,6 +1191,7 @@ TODO: document the other workarounds.
|
|||
<!-- We trust vkd3d to not disable compression all the time. -->
|
||||
<engine engine_name_match="vkd3d">
|
||||
<option name="compression_control_enabled" value="true" />
|
||||
<option name="anv_enable_fully_covered" value="true" />
|
||||
</engine>
|
||||
<engine engine_name_match="ANGLE">
|
||||
<option name="custom_border_colors_without_format" value="true" />
|
||||
|
|
|
|||
|
|
@ -975,6 +975,10 @@
|
|||
DRI_CONF_OPT_B(anv_enable_scratch_page, def, \
|
||||
"Disables surface padding and suppresses all page faults, drops writes and returns zeros on reads.")
|
||||
|
||||
#define DRI_CONF_ANV_ENABLE_FULLY_COVERED(def) \
|
||||
DRI_CONF_OPT_B(anv_enable_fully_covered, def, \
|
||||
"Enable fullyCoveredFragmentShaderInputVariable (Alchemist and newer only).")
|
||||
|
||||
/**
|
||||
* \brief HASVK specific configuration options
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue