BasicHLSL11_PS.hlsl 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
  2. // CHECK: NORMAL
  3. // CHECK: xyz
  4. // CHECK: TEXCOORD
  5. // CHECK: xy
  6. // CHECK: SV_Target
  7. // CHECK: xyzw
  8. // CHECK: xyzw
  9. // CHECK: DepthOutput=0
  10. // CHECK: SampleFrequency=1
  11. // CHECK: NORMAL 0 sample
  12. // CHECK: TEXCOORD 0 noperspective
  13. // CHECK: g_txDiffuse_texture_2d
  14. // CHECK: g_samLinear_sampler
  15. //--------------------------------------------------------------------------------------
  16. // File: BasicHLSL11_PS.hlsl
  17. //
  18. // The pixel shader file for the BasicHLSL11 sample.
  19. //
  20. // Copyright (c) Microsoft Corporation. All rights reserved.
  21. //--------------------------------------------------------------------------------------
  22. //--------------------------------------------------------------------------------------
  23. // Globals
  24. //--------------------------------------------------------------------------------------
  25. cbuffer cbPerObject : register( b0 )
  26. {
  27. float4 g_vObjectColor : packoffset( c0 );
  28. };
  29. cbuffer cbPerFrame : register( b1 )
  30. {
  31. float3 g_vLightDir : packoffset( c0 );
  32. float g_fAmbient : packoffset( c0.w );
  33. };
  34. //--------------------------------------------------------------------------------------
  35. // Textures and Samplers
  36. //--------------------------------------------------------------------------------------
  37. Texture2D g_txDiffuse : register( t0 );
  38. SamplerState g_samLinear : register( s0 );
  39. //--------------------------------------------------------------------------------------
  40. // Input / Output structures
  41. //--------------------------------------------------------------------------------------
  42. struct PS_INPUT
  43. {
  44. sample float3 vNormal : NORMAL;
  45. noperspective float2 vTexcoord : TEXCOORD0;
  46. };
  47. //--------------------------------------------------------------------------------------
  48. // Pixel Shader
  49. //--------------------------------------------------------------------------------------
  50. float4 main( PS_INPUT Input) : SV_TARGET
  51. {
  52. float4 vDiffuse = g_txDiffuse.Sample( g_samLinear, Input.vTexcoord );
  53. float fLighting = saturate( dot( g_vLightDir, Input.vNormal ) );
  54. fLighting = max( fLighting, g_fAmbient );
  55. return vDiffuse * fLighting;
  56. }