support V_MAC_F32

fix buffer load issue
update windows sdk version
fix zydis dependency
fix warnings
This commit is contained in:
Asuka 2022-04-26 17:22:49 +08:00
parent 9fce2d90f7
commit 093ff42a29
8 changed files with 20 additions and 6 deletions

View file

@ -12,7 +12,7 @@
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{816CCC89-8D3A-364F-ABC2-F7CCB4D4F289}</ProjectGuid>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<Keyword>Win32Proj</Keyword>
<Platform>x64</Platform>
<ProjectName>glfw</ProjectName>

View file

@ -14,7 +14,7 @@
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{1BE55B0D-EB4C-4DC3-91CA-CDF291307215}</ProjectGuid>
<RootNamespace>rtaudio</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

View file

@ -102,7 +102,7 @@
</SubSystem>
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<AdditionalDependencies>Zycored.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>Zycore.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Lib>
</ItemDefinitionGroup>

View file

@ -38,6 +38,7 @@ namespace sce::gcn
auto op = ins.opcode;
switch (op)
{
case GcnOpcode::S_SWAPPC_B64:
case GcnOpcode::S_ENDPGM:
// Nothing to do.
break;

View file

@ -32,7 +32,8 @@ namespace sce::gcn
case GcnOpcode::S_BUFFER_LOAD_DWORDX16:
{
GcnRegIndex index = {};
index.regIdx = smrd.sbase.code;
// This is the sgpr pair index, so we need to multiply by 2
index.regIdx = smrd.sbase.code * 2;
if (smrd.control.imm)
{
index.offset = smrd.control.offset << 2;

View file

@ -122,6 +122,16 @@ namespace sce::gcn
src[0].low.id,
src[1].low.id);
break;
case GcnOpcode::V_MAC_F32:
{
auto vdst = emitVgprLoad(ins.dst[0]);
dst.low.id = m_module.opFAdd(typeId,
m_module.opFMul(typeId,
src[0].low.id,
src[1].low.id),
vdst.id);
}
break;
// VectorRegMov
case GcnOpcode::V_MOV_B32:
dst.low.id = src[0].low.id;

View file

@ -769,7 +769,7 @@ namespace sce::Gnm
{
int32_t vertexTableReg = findUsageRegister(resTable, kShaderInputUsagePtrVertexBufferTable);
LOG_ASSERT(vertexTableReg >= 0, "vertex table not found while input semantic exist.");
const uint32_t* vertexTable = &ctx.userData[vertexTableReg];
const uint32_t* vertexTable = *reinterpret_cast<uint32_t* const*>(&ctx.userData[vertexTableReg]);
bool singleBinding = isSingleVertexBinding(vertexTable, semaTable);
@ -1133,6 +1133,8 @@ namespace sce::Gnm
stage);
}
break;
case VK_DESCRIPTOR_TYPE_MAX_ENUM:
break;
default:
LOG_ASSERT(false, "resource type not supported.");
break;

View file

@ -1801,7 +1801,7 @@ int32_t sce::GpuAddress::computeDccInfo(uint64_t *outDccSizeBytes, uint32_t *out
uint32_t cbSliceSizeBytes = target->getSliceSizeInBytes();
uint32_t cbNumSlices = 1 + target->getLastArraySliceIndex();
int32_t status;
[[maybe_unused]] int32_t status;
Gnm::ArrayMode arrayMode;
status = GpuAddress::getArrayMode(&arrayMode, cbTileMode);
SCE_GNM_ASSERT_MSG_RETURN( status == kStatusSuccess, status, "Could not extract ArrayMode from cbTileMode (%d)", cbTileMode);