Skip to content

Commit 76c5b99

Browse files
committed
Update pal from commit: 25b4a35
* Enable DB-CB fix function resolve in PA * AcqRelBarrier] Narrow down the scenario that release at BOP due to no VS_DONE. * Remove texture quilting support as no future HW will support this * Fix a DMA bug uncovered by the PCIe copy optimization * Enable tile-mode when present gpu is rendering gpu * Disable use of CE IB2's in gfx10 * Remove copyFormatsMatch and replace the "CopyDst is compressed" logic with settings * Ignore the "useCpuPathForTableUpdates" flag and the "cmdBufForceCpuUpdatePath" setting on products that don't support a constant engine * Provide a CPU-based version of the UpdateNggCullingDataBuffer function for use with products that don't have a constant engine * Fixed some gcc unused variable errors * Remove the remaining CE ram reference, used with inherited command buffers * Don't use doubles in any RPM shaders * Fix possible null dereference when deallocating memory * Disable vertex grouping except in cases where necessary (NGG Fast Launch) * Account for the sdl address user data registers when calculating the available ones * [GFX9/10] expose settings for CB/DB policy change * Fix the order of the tags for this setting so that it will actually show up in the panel * Bump version number to 237
1 parent 39abe22 commit 76c5b99

File tree

127 files changed

+57505
-65048
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+57505
-65048
lines changed

inc/core/pal.h

+5
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ typedef Util::Result Result; ///< The PAL core and utility companion share th
5353

5454
typedef Util::Rational Rational; ///< A ratio of two unsigned integers.
5555

56+
#if defined(__unix__)
57+
5658
typedef void* OsDisplayHandle; ///< The Display Handle for Linux except X11 platform
5759
typedef uint32 OsExternalHandle; ///< OsExternalHandle corresponds to a generic handle on linux
5860
typedef uint32 OsVideoSessionHandle; ///< OsVideoSessionHandle corresponds to a video session handle on linux.
@@ -64,6 +66,9 @@ union OsWindowHandle
6466
uint32 win; ///< Native window handle in X is a 32-bit integer.
6567
};
6668
constexpr OsWindowHandle NullWindowHandle = {nullptr}; ///< Value representing a null or invalid window handle.
69+
#else
70+
#error "Unsupported OS platform detected!"
71+
#endif
6772

6873
constexpr uint32 InvalidVidPnSourceId = ~0u; ///< In cases where PAL cannot abstract a Windows VidPnSourceId, this
6974
/// represents an invalid value. (Note: zero is a valid value.)

inc/core/palDevice.h

+56-3
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,34 @@ enum class LocalMemoryType : uint32
695695
Count
696696
};
697697

698+
/// Bitmask of all MSAA/EQAA types supported, in terms of samples (S) and shaded fragments (F)
699+
enum MsaaFlags : uint16
700+
{
701+
MsaaS1F1 = 0x0001,
702+
MsaaS2F1 = 0x0002,
703+
MsaaS4F1 = 0x0004,
704+
MsaaS8F1 = 0x0008,
705+
MsaaS16F1 = 0x0010,
706+
MsaaAllF1 = 0x001F,
707+
708+
MsaaS2F2 = 0x0020,
709+
MsaaS4F2 = 0x0040,
710+
MsaaS8F2 = 0x0080,
711+
MsaaS16F2 = 0x0100,
712+
MsaaAllF2 = 0x01E0,
713+
714+
MsaaS4F4 = 0x0200,
715+
MsaaS8F4 = 0x0400,
716+
MsaaS16F4 = 0x0800,
717+
MsaaAllF4 = 0x0E00,
718+
719+
MsaaS8F8 = 0x1000,
720+
MsaaS16F8 = 0x2000,
721+
MsaaAllF8 = 0x3000,
722+
723+
MsaaAll = 0x3FFF,
724+
};
725+
698726
/// Reports various properties of a particular IDevice to the client. @see IDevice::GetProperties.
699727
struct DeviceProperties
700728
{
@@ -960,18 +988,24 @@ struct DeviceProperties
960988
{
961989
struct
962990
{
991+
#if (PAL_CLIENT_INTERFACE_MAJOR_VERSION < 546)
963992
/// Single-sample images created on this device support texture quilting
964993
uint32 supportsSingleSampleQuilting : 1;
994+
#endif
965995

966996
/// Images created on this device supports AQBS stereo mode, this AQBS stereo mode doesn't apply to the
967997
/// array-based stereo feature supported by Presentable images.
968998
uint32 supportsAqbsStereoMode : 1;
969999

9701000
/// Set if images created on this device support being created with corner sampling.
9711001
uint32 supportsCornerSampling : 1;
972-
1002+
#if (PAL_CLIENT_INTERFACE_MAJOR_VERSION < 546)
9731003
/// Reserved for future use.
9741004
uint32 reserved : 29;
1005+
#else
1006+
/// Reserved for future use.
1007+
uint32 reserved : 30;
1008+
#endif
9751009
};
9761010
uint32 u32All; ///< Flags packed as 32-bit uint.
9771011
} flags; ///< GPU memory property flags.
@@ -980,6 +1014,8 @@ struct DeviceProperties
9801014
uint32 maxArraySlices; ///< Maximum supported number of array slices for a 1D or 2D image.
9811015
PrtFeatureFlags prtFeatures; ///< PRT features supported by the hardware.
9821016
gpusize prtTileSize; ///< Size, in bytes, of a PRT tile.
1017+
MsaaFlags msaaSupport; ///< Bitflags for MSAA sample/fragment count support.
1018+
uint8 maxMsaaFragments; ///< Max number of MSAA fragments per pixel (may have more samples).
9831019
uint8 numSwizzleEqs; ///< How many swizzle equations are in pSwizzleEqs.
9841020
const SwizzleEquation* pSwizzleEqs; ///< These describe how to interpret device-dependent tiling modes.
9851021

@@ -1609,7 +1645,9 @@ enum class ImageViewType : uint32
16091645
Tex2d = 0x1,
16101646
Tex3d = 0x2,
16111647
TexCube = 0x3,
1648+
#if (PAL_CLIENT_INTERFACE_MAJOR_VERSION < 546)
16121649
TexQuilt = 0x4,
1650+
#endif
16131651

16141652
Count
16151653
};
@@ -1740,8 +1778,7 @@ struct ImageViewInfo
17401778
{
17411779
const IImage* pImage; ///< Image associated with the view.
17421780
ImageViewType viewType; ///< 1D, 2D, 3D, or Cubemap. Typically this should match the image type, but a
1743-
/// Cubemap view can be imposed on a 2D array image. TexQuilt allowed only if the
1744-
/// imageProperties.flags.supportsQuilting flag is set.
1781+
/// Cubemap view can be imposed on a 2D array image.
17451782
SwizzledFormat swizzledFormat; ///< Specifies the image view format and channel swizzle. Must be compatible (same
17461783
/// bit-widths per channel) with the image's base format.
17471784
/// @note: YUV formats are invalid for an ImageView. A format should be chosen to be
@@ -1750,8 +1787,10 @@ struct ImageViewInfo
17501787
/// has a YUV planar format, the number of array slices in the range must be 1.
17511788
float minLod; ///< Minimum mip level of detail to use for this view.
17521789

1790+
#if (PAL_CLIENT_INTERFACE_MAJOR_VERSION < 546)
17531791
uint32 quiltWidthInSlices; ///< Width of a quilted surface. Only used if viewType == TexQuilt.
17541792
/// Must be a power of 2.
1793+
#endif
17551794

17561795
uint32 samplePatternIdx; ///< Index into the currently bound MSAA sample pattern palette to be
17571796
/// read/evaluated when samplepos shader instructions are executed on this
@@ -4647,6 +4686,20 @@ class IDevice
46474686
/// @returns Pointer to debug file path.
46484687
virtual const char* GetDebugFilePath() const = 0;
46494688

4689+
/// Queries the base driver Radeon Software Version string (as shown in Radeon Settings).
4690+
///
4691+
/// @param [out] pBuffer A non-null pointer to the buffer where the string will be written.
4692+
/// @param [in] bufferLength The byte size of the string buffer (must be non-zero).
4693+
///
4694+
/// @returns Success if the string was successfully retrieved. Otherwise, one of the following errors
4695+
/// may be returned:
4696+
/// + Unsupported if this function is not available on this environment.
4697+
/// + NotFound if the Radeon Software Version string is not present.
4698+
/// + ErrorInvalidValue if nullptr was passed for pBuffer or 0 for bufferLength.
4699+
virtual Result QueryRadeonSoftwareVersion(
4700+
char* pBuffer,
4701+
size_t bufferLength) const = 0;
4702+
46504703
/// Returns the value of the associated arbitrary client data pointer.
46514704
/// Can be used to associate arbitrary data with a particular PAL object.
46524705
///

inc/core/palImage.h

+4
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,12 @@ union ImageCreateFlags
178178
/// "Uninitialized" state at any time. Otherwise, both aspects must be
179179
/// transitioned in the same barrier call. Only meaningful if
180180
/// "perSubresInit" is set
181+
#if PAL_CLIENT_INTERFACE_MAJOR_VERSION < 547
181182
uint32 copyFormatsMatch : 1; ///< Optimization: When this image is used as an argument to CmdCopyImage,
182183
/// its format must match the format of the other image.
184+
#else
185+
uint32 reserved547 : 1;
186+
#endif
183187
uint32 repetitiveResolve : 1; ///< Optimization: Is this image resolved multiple times to an image which
184188
/// is mostly similar to this image?
185189
uint32 preferSwizzleEqs : 1; ///< Image prefers valid swizzle equations, but an invalid swizzle

inc/core/palLib.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
/// compatible, it is not assumed that the client will initialize all input structs to 0.
4444
///
4545
/// @ingroup LibInit
46-
#define PAL_INTERFACE_MAJOR_VERSION 545
46+
#define PAL_INTERFACE_MAJOR_VERSION 547
4747

4848
/// Minor interface version. Note that the interface version is distinct from the PAL version itself, which is returned
4949
/// in @ref Pal::PlatformProperties.

inc/core/palPipelineAbi.h

+1-3
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ static const char* PipelineAbiSymbolNameStrings[] =
179179
};
180180

181181
/// Deprecated - String table of the Pipeline Metadata key names.
182-
static const char* PipelineMetadataNameStrings[] =
182+
static const char* const PipelineMetadataNameStrings[] =
183183
{
184184
"API_CS_HASH_DWORD0",
185185
"API_CS_HASH_DWORD1",
@@ -782,8 +782,6 @@ enum class AbiSectionType : uint32
782782
/// P - The section offset or address of the storage unit being relocated, computed using r_offset.
783783
/// S - The value of the symbol whose index resides in the relocation entry.
784784
/// Z - The size of the symbol whose index resides in the relocation entry.
785-
/// SEE: https://docs.oracle.com/cd/E23824_01/html/819-0690/chapter6-54839.html#chapter7-2
786-
/// for other architecture examples.
787785
/// SEE: https://llvm.org/docs/AMDGPUUsage.html#relocation-records
788786
/// for AMDGPU defined relocations.
789787
enum class RelocationType : uint32

0 commit comments

Comments
 (0)