BasicHLSL11_PS3.hlsl 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
  2. // CHECK: ; PS_IN 0 xyzw 0 NONE float
  3. // CHECK: ; PS_IN 2 xyzw 1 NONE float
  4. // CHECK: ; PS_IN 1 xyzw 2 NONE float
  5. // CHECK: ; PS_IN 3 xyzw 3 NONE float
  6. // CHECK: ; PS_INI 0 xyzw 4 NONE float
  7. // CHECK: ; PS_INI 1 xyzw 5 NONE float
  8. // CHECK: ; PS_INI 2 xyzw 6 NONE float
  9. // CHECK: ; PS_INI 3 xyzw 7 NONE float
  10. // CHECK: ; PS_INII 0 xyzw 8 NONE float
  11. // CHECK: ; PS_INII 1 xyzw 9 NONE float
  12. // CHECK: ; PS_INII 4 xyzw 10 NONE float
  13. // CHECK: ; PS_INII 5 xyzw 11 NONE float
  14. // CHECK: ; PS_INII 2 xyzw 12 NONE float
  15. // CHECK: ; PS_INII 3 xyzw 13 NONE float
  16. // CHECK: ; PS_INII 6 xyzw 14 NONE float
  17. // CHECK: ; PS_INII 7 xyzw 15 NONE float
  18. // CHECK: ; NORMAL 0 xyz 16 NONE float
  19. // CHECK: ; NORMAL 1 xyz 17 NONE float
  20. // CHECK: ; TEXCOORD 0 xy 18 NONE float
  21. // CHECK: DepthOutput=0
  22. // CHECK: SampleFrequency=1
  23. // CHECK: NORMAL 0 sample
  24. // CHECK: TEXCOORD 0 noperspective
  25. // CHECK: g_txDiffuse_texture_2d
  26. // CHECK: g_samLinear_sampler
  27. //--------------------------------------------------------------------------------------
  28. // File: BasicHLSL11_PS.hlsl
  29. //
  30. // The pixel shader file for the BasicHLSL11 sample.
  31. //
  32. // Copyright (c) Microsoft Corporation. All rights reserved.
  33. //--------------------------------------------------------------------------------------
  34. //--------------------------------------------------------------------------------------
  35. // Globals
  36. //--------------------------------------------------------------------------------------
  37. cbuffer cbPerObject : register( b0 )
  38. {
  39. float4 g_vObjectColor : packoffset( c0 );
  40. };
  41. cbuffer cbPerFrame : register( b1 )
  42. {
  43. float3 g_vLightDir : packoffset( c0 );
  44. float g_fAmbient : packoffset( c0.w );
  45. };
  46. //--------------------------------------------------------------------------------------
  47. // Textures and Samplers
  48. //--------------------------------------------------------------------------------------
  49. Texture2D g_txDiffuse : register( t0 );
  50. SamplerState g_samLinear : register( s0 );
  51. //--------------------------------------------------------------------------------------
  52. // Input / Output structures
  53. //--------------------------------------------------------------------------------------
  54. struct S {
  55. float4 m;
  56. float4 m2;
  57. };
  58. struct S2 {
  59. float4 m[2];
  60. float4 m2[2];
  61. };
  62. struct PS_INPUT
  63. {
  64. S s[2] : PS_IN;
  65. S2 s2 : PS_INI;
  66. S2 s3[2] : PS_INII;
  67. sample float3 vNormal[2] : NORMAL;
  68. noperspective float2 vTexcoord : TEXCOORD0;
  69. };
  70. uint t;
  71. //--------------------------------------------------------------------------------------
  72. // Pixel Shader
  73. //--------------------------------------------------------------------------------------
  74. float4 main( PS_INPUT Input) : SV_TARGET
  75. {
  76. float4 vDiffuse = g_txDiffuse.Sample( g_samLinear, Input.vTexcoord );
  77. float fLighting = saturate( dot( g_vLightDir, Input.vNormal[0] ) );
  78. fLighting = max( fLighting, g_fAmbient );
  79. return vDiffuse * fLighting;
  80. }