40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
// Copyright (C) 2026 SharpEmu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
using SharpEmu.ShaderCompiler.Resources;
|
|
using SharpEmu.ShaderCompiler.Vulkan;
|
|
using Xunit;
|
|
using static SharpEmu.ShaderCompiler.Tests.Resources.ResourceTestProgram;
|
|
|
|
namespace SharpEmu.ShaderCompiler.Tests.Resources;
|
|
|
|
public sealed class VectorCompareResourceTests
|
|
{
|
|
[Fact]
|
|
public void BitreplicateB64B32Compiles()
|
|
{
|
|
var program = Program(
|
|
Sop1(0, "SBitreplicateB64B32", 0, Operand(7)),
|
|
EndProgram(8));
|
|
|
|
Assert.True(Gen5SpirvTranslator.TryCompileProgram(Request(program, userDataCount: 0), out var shader, out var error), error);
|
|
Assert.NotEmpty(shader.Spirv);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("VCmpEqU16")]
|
|
[InlineData("VCmpLtU16")]
|
|
[InlineData("VCmpGeU16")]
|
|
[InlineData("VCmpEqI16")]
|
|
[InlineData("VCmpLtI16")]
|
|
public void Integer16BitCompareCompilesToSpirv(string opcode)
|
|
{
|
|
var program = Program(
|
|
Vopc(0, opcode, Gen5Operand.Vector(0), 1),
|
|
EndProgram(8));
|
|
|
|
Assert.True(Gen5SpirvTranslator.TryCompileProgram(Request(program, userDataCount: 0), out var shader, out var error), error);
|
|
Assert.NotEmpty(shader.Spirv);
|
|
}
|
|
}
|