hlsl.matType.int.frag 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. void TestIntMatTypes()
  2. {
  3. int1x1 i1x1;
  4. int2x1 i2x1;
  5. int3x1 i3x1;
  6. int4x1 i4x1;
  7. int1x2 i1x2;
  8. int2x2 i2x2;
  9. int3x2 i3x2;
  10. int4x2 i4x2;
  11. int1x3 i1x3;
  12. int2x3 i2x3;
  13. int3x3 i3x3;
  14. int4x3 i4x3;
  15. int1x4 i1x4;
  16. int2x4 i2x4;
  17. int3x4 i3x4;
  18. int4x4 i4x4;
  19. // TODO: Currently SPIR-V disallows Nx1 or 1xN mats.
  20. int1x1 r00 = transpose(i1x1);
  21. int1x2 r01 = transpose(i2x1);
  22. int1x3 r02 = transpose(i3x1);
  23. int1x4 r03 = transpose(i4x1);
  24. int2x1 r10 = transpose(i1x2);
  25. int2x2 r11 = transpose(i2x2);
  26. int2x3 r12 = transpose(i3x2);
  27. int2x4 r13 = transpose(i4x2);
  28. int3x1 r20 = transpose(i1x3);
  29. int3x2 r21 = transpose(i2x3);
  30. int3x3 r22 = transpose(i3x3);
  31. int3x4 r23 = transpose(i4x3);
  32. int4x1 r30 = transpose(i1x4);
  33. int4x2 r31 = transpose(i2x4);
  34. int4x3 r32 = transpose(i3x4);
  35. int4x4 r33 = transpose(i4x4);
  36. }
  37. void TestUintMatTypes()
  38. {
  39. uint1x1 u1x1;
  40. uint2x1 u2x1;
  41. uint3x1 u3x1;
  42. uint4x1 u4x1;
  43. uint1x2 u1x2;
  44. uint2x2 u2x2;
  45. uint3x2 u3x2;
  46. uint4x2 u4x2;
  47. uint1x3 u1x3;
  48. uint2x3 u2x3;
  49. uint3x3 u3x3;
  50. uint4x3 u4x3;
  51. uint1x4 u1x4;
  52. uint2x4 u2x4;
  53. uint3x4 u3x4;
  54. uint4x4 u4x4;
  55. // TODO: Currently SPIR-V disallows Nx1 or 1xN mats.
  56. uint1x1 r00 = transpose(u1x1);
  57. uint1x2 r01 = transpose(u2x1);
  58. uint1x3 r02 = transpose(u3x1);
  59. uint1x4 r03 = transpose(u4x1);
  60. uint2x1 r10 = transpose(u1x2);
  61. uint2x2 r11 = transpose(u2x2);
  62. uint2x3 r12 = transpose(u3x2);
  63. uint2x4 r13 = transpose(u4x2);
  64. uint3x1 r20 = transpose(u1x3);
  65. uint3x2 r21 = transpose(u2x3);
  66. uint3x3 r22 = transpose(u3x3);
  67. uint3x4 r23 = transpose(u4x3);
  68. uint4x1 r30 = transpose(u1x4);
  69. uint4x2 r31 = transpose(u2x4);
  70. uint4x3 r32 = transpose(u3x4);
  71. uint4x4 r33 = transpose(u4x4);
  72. }
  73. struct PS_OUTPUT { float4 color : SV_Target0; };
  74. PS_OUTPUT main()
  75. {
  76. PS_OUTPUT ps_output;
  77. ps_output.color = float4(0,0,0,0);
  78. return ps_output;
  79. };