58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
namespace SharpDX.Tests
|
|
{
|
|
using System;
|
|
using D3DCompiler;
|
|
using Direct3D;
|
|
using NUnit.Framework;
|
|
|
|
[TestFixture]
|
|
public class ShaderBytecodeProfileTests
|
|
{
|
|
[TestCase("ps_4_0_level_9_1")]
|
|
[TestCase("ps_4_0_level_9_3")]
|
|
[TestCase("ps_4_0")]
|
|
[TestCase("ps_4_1")]
|
|
[TestCase("ps_5_0")]
|
|
public void WillReturnCorrectProfileVersionForPixelShader(string profile)
|
|
{
|
|
const string pixelShaderSourceCode = @"float4 ps() : SV_Target { return float4(0,0,0,0); }";
|
|
|
|
var bytecode = ShaderBytecode.Compile(pixelShaderSourceCode, "ps", profile).Bytecode;
|
|
|
|
var profileStruct = bytecode.GetVersion();
|
|
|
|
Assert.AreEqual(profile, profileStruct.ToString());
|
|
}
|
|
|
|
[TestCase("vs_4_0_level_9_1")]
|
|
[TestCase("vs_4_0_level_9_3")]
|
|
[TestCase("vs_4_0")]
|
|
[TestCase("vs_4_1")]
|
|
[TestCase("vs_5_0")]
|
|
public void WillReturnCorrectProfileVersionForVertexShader(string profile)
|
|
{
|
|
const string vertexShaderSourceCode = @"float4 vs() : SV_Position { return float4(0,0,0,0); }";
|
|
|
|
var bytecode = ShaderBytecode.Compile(vertexShaderSourceCode, "vs", profile).Bytecode;
|
|
|
|
var profileStruct = bytecode.GetVersion();
|
|
|
|
Assert.AreEqual(profile, profileStruct.ToString());
|
|
}
|
|
|
|
[TestCase(5, 0, 0, 0, FeatureLevel.Level_11_0)]
|
|
[TestCase(4, 1, 0, 0, FeatureLevel.Level_10_1)]
|
|
[TestCase(4, 0, 0, 0, FeatureLevel.Level_10_0)]
|
|
[TestCase(4, 0, 9, 3, FeatureLevel.Level_9_3)]
|
|
[TestCase(4, 0, 9, 1, FeatureLevel.Level_9_1)]
|
|
[TestCase(4, 0, 9, 2, FeatureLevel.Level_9_1, ExpectedException = typeof(InvalidOperationException))]
|
|
public void WillReturnCorrectFeatureLevelFromProfile(int major, int minor, int profileMajor, int profileMinor, FeatureLevel expected)
|
|
{
|
|
var profile = new ShaderProfile(ShaderVersion.VertexShader, major, minor, profileMajor, profileMinor);
|
|
|
|
var featureLevel = profile.GetFeatureLevel();
|
|
|
|
Assert.AreEqual(expected, featureLevel);
|
|
}
|
|
}
|
|
} |