summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2020-04-14 17:00:11 -0400
committerGitHub <noreply@github.com>2020-04-14 17:00:11 -0400
commitfbac017938343724407ab036abd736c942b4e187 (patch)
tree36314aaffcf461eafbefb916ea516462511d8324 /tests
parentcbdee1b1873ff0b7be887bccfbe5409e1a7ba685 (diff)
CUDA global scope initialization of arrays without function calls. (#1320)
* Fix CUDA output of a static const array if values are all literals. * Fix bug in Convert definition. * Output makeArray such that is deconstructed on CUDA to fill in based on what the target type is. Tries to expand such that there are no function calls so that static const global scope definitions work. * Fix unbounded-array-of-array-syntax.slang to work correctly on CUDA. * Remove tabs. * Check works with static const vector/matrix. * Fix typo in type comparison. * Shorten _areEquivalent test. * Rename _emitInitializerList. Some small comment fixes. Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/compute/static-const-matrix-array.slang36
-rw-r--r--tests/compute/static-const-matrix-array.slang.expected.txt9
-rw-r--r--tests/compute/unbounded-array-of-array-syntax.slang1
3 files changed, 46 insertions, 0 deletions
diff --git a/tests/compute/static-const-matrix-array.slang b/tests/compute/static-const-matrix-array.slang
new file mode 100644
index 000000000..2ac132121
--- /dev/null
+++ b/tests/compute/static-const-matrix-array.slang
@@ -0,0 +1,36 @@
+// static-const-array.slang
+
+//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -output-using-type
+//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type
+//TEST(compute):COMPARE_COMPUTE_EX:-cpu -slang -compute -output-using-type
+
+//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out, name outputBuffer
+RWStructuredBuffer<float> outputBuffer;
+
+
+static const matrix<float, 2, 3> kMatrix = { 1, 2, 4, -1, -2, -3 };
+static const float3 kVector = { -1, -2, -3 };
+
+static const matrix<float, 2, 3> kArray[2] =
+{
+ matrix<float, 2, 3>(0, 1, 2, 3, 4, 5),
+ matrix<float, 2, 3>(float3(6, 7, 8), float3(9, 10, 11)),
+};
+
+float test(int inVal, int index)
+{
+ matrix<float, 2, 3> mat = kArray[index] + kMatrix;
+ mat[0] =+ kVector;
+
+ float2 a = { inVal, inVal + 1};
+ float3 v = mul(a, mat);
+ return v.x + v.y + v.z;
+}
+
+[numthreads(8, 1, 1)]
+void computeMain(uint3 tid : SV_DispatchThreadID)
+{
+ int inVal = tid.x;
+ float outVal = test(inVal, inVal & 1);
+ outputBuffer[inVal] = outVal;
+} \ No newline at end of file
diff --git a/tests/compute/static-const-matrix-array.slang.expected.txt b/tests/compute/static-const-matrix-array.slang.expected.txt
new file mode 100644
index 000000000..7c72762a0
--- /dev/null
+++ b/tests/compute/static-const-matrix-array.slang.expected.txt
@@ -0,0 +1,9 @@
+type: float
+6.000000
+42.000000
+6.000000
+78.000000
+6.000000
+114.000000
+6.000000
+150.000000
diff --git a/tests/compute/unbounded-array-of-array-syntax.slang b/tests/compute/unbounded-array-of-array-syntax.slang
index 21b05dc71..17bb5eb2e 100644
--- a/tests/compute/unbounded-array-of-array-syntax.slang
+++ b/tests/compute/unbounded-array-of-array-syntax.slang
@@ -2,6 +2,7 @@
//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute
//TEST:CROSS_COMPILE:-target dxbc-assembly -entry computeMain -profile cs_5_1
//TEST:CROSS_COMPILE:-target spirv-assembly -entry computeMain -profile cs_5_1
+//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;