diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2019-09-18 11:40:59 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-18 11:40:59 -0400 |
| commit | 31c7abcc27a33d63ac8d335387a0ce7b3ad74954 (patch) | |
| tree | 3b4254df7bdbf8b497aa8a3e5f08f8927c1afbc6 /tests/cross-compile/cpp-execute.slang | |
| parent | 3af404da7f7f125464b78159940cb3fc06e69cc5 (diff) | |
Improvements to testing and ABI for CPU (#1057)
* WIP: Improving CPU performance/ABI
* Optionally output code on CPU for groupThreadID and groupID.
* Added ability to set compute dispatch size on command line for render-test.
Dispatch compute tests taking into account dispatch size.
Added test for semantics are working.
* Test using GroupRange.
* Fix problem with adding \n for externa diagnostic - to do it if there isn't a \n at the end. Change the ouput order (put result before) so last value is diagnostic string.
* Made GroupRange the default exposed CPU ABI entry point style.
Removed CPU_EXECUTE test style -as tested via the now cross platform render-test
* Split out execution from setup for execution to improve perf.
* For better code coverage/testing test all styles of CPU compute entry point.
* Improve documentation for ABI changes for CPU code.
Add 'expecting' to error message from review.
* Fix small typos.
Diffstat (limited to 'tests/cross-compile/cpp-execute.slang')
| -rw-r--r-- | tests/cross-compile/cpp-execute.slang | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/tests/cross-compile/cpp-execute.slang b/tests/cross-compile/cpp-execute.slang deleted file mode 100644 index 2700aa49f..000000000 --- a/tests/cross-compile/cpp-execute.slang +++ /dev/null @@ -1,107 +0,0 @@ -//TEST:CPU_EXECUTE: -profile cs_5_0 -entry computeMain -target sharedlib - -enum Color -{ - Red, - Green = 2, - Blue, -} - -int test(int val) -{ - Color c = Color.Red; - - if(val > 1) - { - c = Color.Green; - } - - if(c == Color.Red) - { - if(val & 1) - { - c = Color.Blue; - } - } - - switch(c) - { - case Color.Red: - val = 1; - break; - - case Color.Green: - val = 2; - break; - - case Color.Blue: - val = 3; - break; - - default: - val = -1; - break; - } - - return (val << 4) + int(c); -} - -float sum(float a[3]) -{ - float total = a[0]; - for (int i = 1; i < 3; ++i) - { - total += a[i]; - } - return total; -} - -struct Thing -{ - int a; - float b; -}; - -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):dxbinding(0),glbinding(0),out -RWStructuredBuffer<int> outputBuffer; - -[numthreads(4, 1, 1)] -void computeMain( - uint3 dispatchThreadID : SV_DispatchThreadID) -{ - uint tid = dispatchThreadID.x; - - Thing thing = { 10, -1.0 }; - - float array[3] = { thing.a, 2, 3}; - - float anotherArray[] = { 1, 2, 5 }; - - array[0] += anotherArray[1]; - - matrix<float, 2, 3> mat = { { sum(array), 1, 2 }, { 3, 4, 5} }; - vector<float, 2> vec = { float(tid + 1), float(tid + 2) }; - - vector<float, 3> vec2 = max(sin(mul(vec, mat)), float3(1, 2, -1)); - vector<float, 3> vec3 = mul(vec, mat); - - float3 vec4 = lerp(vec2, vec3, float3(tid * (1.0f / 4), 1, 1)); - - float3 crossVec = normalize(cross(vec4, vec4)); - - vec2.x = fmod(crossVec.y, crossVec.x); - - vec2 = fmod(vec2, crossVec); - - vec2 += (-vec2.zyx) * 2 + crossVec * length(crossVec) + reflect(vec4, normalize(crossVec)); - - vector<bool, 3> z = vec2 > 0; - - int val = (int(tid) + (any(z) ? 1 : 0) + (all(z) ? 2 : 0)) % 100; - - val = asint(asfloat(asuint(asfloat(val)))); - - val = test(val); - - outputBuffer[tid] = val + int(dot(vec2, vec4)); -}
\ No newline at end of file |
