Skip to content

Commit

Permalink
Update xgl from commit 0e90e78b
Browse files Browse the repository at this point in the history
* Add missing Pal::CoherSampleRate flag on queue family policy mask and images used as VRS attachment
* Use new cache ID for internal pipelines
* Bump LLPC version to 68
* VK_EXT_primitives_generated_query-Driver Implementation
* VK_EXT_frame_boundary-Expose the extension
* Remove *CreateFlags typedef replace with Vk*CreateFlags2KHR after maintenance5 is released
* Update PAL Version in XGL 834
* Fix performance drop observed in X-Plane with Resize Bar Enabled
* Don't attempt to dump a missing binary
* Expose PAL's cmdBufBatchedSubmitChainLimit setting in XGL
* Fix dEQP-VK.pipeline.shader_object*.samples_1.* fail
* Fix memory size for uber fetch internal data
* Remove all bltmsaastate related function and parameter
* Remove prebltmsaa and postbltrestoremsaa functions for cmdbuffer
* Support the debug printf output in the hang state
* Add Get64BitInstanceNodePtr from gpurt for compiler
* Send Pal with msaastate as non-nullptr
* Expose cooperative matrix
* Fragment Shading Rate bug fix
* Update Khronos Vulkan Headers to 1.3.269
* Fix TriangleCompressionMode setting
* Fix failure in dEQP-VK.ray_tracing_pipeline.misc.* tests
* Refine graphic pipeline library fast link related code
* Enable RT triangle pair compression
* Skip trivial task-mesh dispatch
* Bump Gpurt Version to 40
* Fix dynamic rendering partial binding depth/stencil
* VK_KHR_maintenance5 implementation
* Add support for VK_EXT_fragment_shader_interlock
* Update default navi3 RT settings, Move VGPR limit from Validate to Override and Remove Quake2 Settings
* WWZ Chopped Present after Alt+Tab
* Fix an invalid assertion for Pal::ShaderLibraryFunctionInfo::symbolName
* Fix ANGLE test failure in dEQP-GLES31.functional.image_load_store.3d*
  • Loading branch information
chuang13 committed Nov 21, 2023
1 parent c9f6c1c commit 194a181
Show file tree
Hide file tree
Showing 59 changed files with 1,722 additions and 966 deletions.
1 change: 1 addition & 0 deletions cmake/XglOverrides.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ endmacro()

macro(xgl_overrides_pal)
### For PAL ###########################################################################################################

set(PAL_BUILD_JEMALLOC OFF CACHE BOOL "Force jemalloc off" FORCE)

set(PAL_CLIENT_INTERFACE_MAJOR_VERSION ${ICD_PAL_CLIENT_MAJOR_VERSION} CACHE STRING "${PROJECT_NAME} override." FORCE)
Expand Down
6 changes: 3 additions & 3 deletions cmake/XglVersions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ include_guard()
# This will become the value of PAL_CLIENT_INTERFACE_MAJOR_VERSION. It describes the version of the PAL interface
# that the ICD supports. PAL uses this value to enable backwards-compatibility for older interface versions.
# It must be updated on each PAL promotion after handling all of the interface changes described in palLib.h.
set(ICD_PAL_CLIENT_MAJOR_VERSION "827")
set(ICD_PAL_CLIENT_MAJOR_VERSION "834")

# This will become the value of GPUOPEN_CLIENT_INTERFACE_MAJOR_VERSION if ICD_GPUOPEN_DEVMODE_BUILD=1.
# It describes the interface version of the gpuopen shared module (part of PAL) that the ICD supports.
Expand All @@ -37,9 +37,9 @@ set(ICD_GPUOPEN_CLIENT_MAJOR_VERSION "42")
#if VKI_RAY_TRACING
# This will become the value of GPURT_CLIENT_INTERFACE_MAJOR_VERSION if VKI_RAY_TRACING=1.
# It describes the interface version of the GpuRT shared module that the ICD supports.
set(ICD_GPURT_CLIENT_MAJOR_VERSION "39")
set(ICD_GPURT_CLIENT_MAJOR_VERSION "40")
#endif

# This will become the value of LLPC_CLIENT_INTERFACE_MAJOR_VERSION if ICD_BUILD_LLPC=1.
# It describes the version of the interface version of LLPC that the ICD supports.
set(ICD_LLPC_CLIENT_MAJOR_VERSION "66")
set(ICD_LLPC_CLIENT_MAJOR_VERSION "68")
4 changes: 2 additions & 2 deletions icd/Loader/LunarG/Lnx/amd-icd.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
"file_format_version": "1.0.0",
"ICD": {
"library_path": "@AMDVLK_INSTALL_PATH@/amdvlk@ISABITS@.so",
"api_version": "1.3.267"
"api_version": "1.3.269"
},
"layer": {
"name": "VK_LAYER_AMD_switchable_graphics_@ISABITS@",
"type": "GLOBAL",
"library_path": "@AMDVLK_INSTALL_PATH@/amdvlk@ISABITS@.so",
"api_version": "1.3.267",
"api_version": "1.3.269",
"implementation_version": "1",
"description": "AMD switchable graphics layer",
"functions": {
Expand Down
3 changes: 2 additions & 1 deletion icd/api/app_shader_optimizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ void ShaderOptimizer::CreateShaderOptimizerKey(

if (settings.pipelineUseShaderHashAsProfileHash)
{
VK_ASSERT(pModuleData != nullptr);

pShaderKey->codeHash.lower = Vkgc::IPipelineDumper::GetShaderHash(pModuleData);
pShaderKey->codeHash.upper = 0;
}
Expand Down Expand Up @@ -249,7 +251,6 @@ void ShaderOptimizer::ApplyProfileToShaderCreateInfo(
{
options.pOptions->disableFMA = shaderCreate.tuningOptions.disableFMA;
}

if (shaderCreate.apply.workaroundStorageImageFormats)
{
options.pOptions->workaroundStorageImageFormats = true;
Expand Down
11 changes: 9 additions & 2 deletions icd/api/barrier_policy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -705,6 +705,7 @@ void DeviceBarrierPolicy::InitQueueFamilyPolicy(
| Pal::CoherClear
| Pal::CoherIndirectArgs
| Pal::CoherIndexData
| Pal::CoherSampleRate
| Pal::CoherPresent;
pPolicy->supportedLayoutUsageMask |= Pal::LayoutColorTarget
| Pal::LayoutDepthStencilTarget
Expand Down Expand Up @@ -1041,6 +1042,12 @@ void ImageBarrierPolicy::InitImageCachePolicy(
supportedInputCacheMask |= Pal::CoherDepthStencilTarget | Pal::CoherClear;
}

if (usage & VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR)
{
supportedOutputCacheMask |= Pal::CoherSampleRate;
supportedInputCacheMask |= Pal::CoherSampleRate;
}

// Apply device specific supported cache masks to limit the scope.
supportedOutputCacheMask &= pDevice->GetBarrierPolicy().GetSupportedOutputCacheMask();
supportedInputCacheMask &= pDevice->GetBarrierPolicy().GetSupportedInputCacheMask();
Expand Down Expand Up @@ -1255,7 +1262,7 @@ uint32_t ImageBarrierPolicy::GetQueueFamilyLayoutEngineMask(
// Constructor for buffer barrier policies.
BufferBarrierPolicy::BufferBarrierPolicy(
Device* pDevice,
BufferUsageFlagBits usage,
VkBufferUsageFlagBits2KHR usage,
VkSharingMode sharingMode,
uint32_t queueFamilyIndexCount,
const uint32_t* pQueueFamilyIndices)
Expand All @@ -1268,7 +1275,7 @@ BufferBarrierPolicy::BufferBarrierPolicy(
// Initialize the cache policy of the buffer according to the input parameters.
void BufferBarrierPolicy::InitBufferCachePolicy(
Device* pDevice,
BufferUsageFlagBits usage,
VkBufferUsageFlagBits2KHR usage,
VkSharingMode sharingMode,
uint32_t queueFamilyIndexCount,
const uint32_t* pQueueFamilyIndices)
Expand Down
2 changes: 2 additions & 0 deletions icd/api/compiler_solution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,8 @@ void CompilerSolution::UpdateRayTracingFunctionNames(
pTable->pFunc[Vkgc::RT_ENTRY_FETCH_HIT_TRIANGLE_FROM_NODE_POINTER]);
SetRayTracingFunctionName(entryFuncTable.intrinsic.pFetchTrianglePositionFromRayQuery,
pTable->pFunc[Vkgc::RT_ENTRY_FETCH_HIT_TRIANGLE_FROM_RAY_QUERY]);
SetRayTracingFunctionName(entryFuncTable.rayQuery.pGet64BitInstanceNodePtr,
pTable->pFunc[Vkgc::RT_ENTRY_GET_INSTANCE_NODE]);
}
}

Expand Down
11 changes: 7 additions & 4 deletions icd/api/compiler_solution_llpc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -609,11 +609,14 @@ VkResult CompilerSolutionLlpc::CreateGraphicsShaderBinary(
m_pPhysicalDevice->Manager()->VkInstance()->FreeMem(const_cast<void*>(finalBinary.pCode));
}

if (pPipelineDumpHandle != nullptr)
if ((pPipelineDumpHandle != nullptr) && (pCreateInfo->earlyElfPackage[gplType].pCode != nullptr))
{
Vkgc::BinaryData elfBinary = ExtractPalElfBinary(pCreateInfo->earlyElfPackage[gplType]);
Vkgc::IPipelineDumper::DumpPipelineBinary(
pPipelineDumpHandle, m_gfxIp, &elfBinary);
if (pCreateInfo->earlyElfPackage[gplType].pCode != nullptr)
{
Vkgc::BinaryData elfBinary = ExtractPalElfBinary(pCreateInfo->earlyElfPackage[gplType]);
Vkgc::IPipelineDumper::DumpPipelineBinary(
pPipelineDumpHandle, m_gfxIp, &elfBinary);
}
}
}
m_gplCacheMatrix.totalBinaries++;
Expand Down
Loading

0 comments on commit 194a181

Please sign in to comment.