ErrorCodes.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // //
  3. // ErrorCodes.h //
  4. // Copyright (C) Microsoft Corporation. All rights reserved. //
  5. // This file is distributed under the University of Illinois Open Source //
  6. // License. See LICENSE.TXT for details. //
  7. // //
  8. // Provides error code values for the DirectX compiler and tools. //
  9. // //
  10. ///////////////////////////////////////////////////////////////////////////////
  11. #pragma once
  12. // Redeclare some macros to not depend on winerror.h
  13. #define DXC_SEVERITY_ERROR 1
  14. #define DXC_MAKE_HRESULT(sev,fac,code) \
  15. ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )
  16. #define HRESULT_IS_WIN32ERR(hr) ((HRESULT)(hr & 0xFFFF0000) == MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, 0))
  17. #define HRESULT_AS_WIN32ERR(hr) (HRESULT_CODE(hr))
  18. // Error codes from C libraries (0n150) - 0x8096xxxx
  19. #define FACILITY_ERRNO (0x96)
  20. #define HRESULT_FROM_ERRNO(x) MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_ERRNO,(x))
  21. // Error codes from DXC libraries (0n170) - 0x8013xxxx
  22. #define FACILITY_DXC (0xAA)
  23. // 0x00000000 - The operation succeeded.
  24. #define DXC_S_OK 0 // _HRESULT_TYPEDEF_(0x00000000L)
  25. // 0x80AA0001 - The operation failed because overlapping semantics were found.
  26. #define DXC_E_OVERLAPPING_SEMANTICS DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0001))
  27. // 0x80AA0002 - The operation failed because multiple depth semantics were found.
  28. #define DXC_E_MULTIPLE_DEPTH_SEMANTICS DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0002))
  29. // 0x80AA0003 - Input file is too large.
  30. #define DXC_E_INPUT_FILE_TOO_LARGE DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0003))
  31. // 0x80AA0004 - Error parsing DXBC container.
  32. #define DXC_E_INCORRECT_DXBC DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0004))
  33. // 0x80AA0005 - Error parsing DXBC bytecode.
  34. #define DXC_E_ERROR_PARSING_DXBC_BYTECODE DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0005))
  35. // 0x80AA0006 - Data is too large.
  36. #define DXC_E_DATA_TOO_LARGE DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0006))
  37. // 0x80AA0007 - Incompatible converter options.
  38. #define DXC_E_INCOMPATIBLE_CONVERTER_OPTIONS DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0007))
  39. // 0x80AA0008 - Irreducible control flow graph.
  40. #define DXC_E_IRREDUCIBLE_CFG DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0008))
  41. // 0x80AA0009 - IR verification error.
  42. #define DXC_E_IR_VERIFICATION_FAILED DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0009))
  43. // 0x80AA000A - Scope-nested control flow recovery failed.
  44. #define DXC_E_SCOPE_NESTED_FAILED DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x000A))
  45. // 0x80AA000B - Operation is not supported.
  46. #define DXC_E_NOT_SUPPORTED DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x000B))
  47. // 0x80AA000C - Unable to encode string.
  48. #define DXC_E_STRING_ENCODING_FAILED DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x000C))
  49. // 0x80AA000D - DXIL container is invalid.
  50. #define DXC_E_CONTAINER_INVALID DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x000D))
  51. // 0x80AA000E - DXIL container is missing the DXIL part.
  52. #define DXC_E_CONTAINER_MISSING_DXIL DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x000E))
  53. // 0x80AA000F - Unable to parse DxilModule metadata.
  54. #define DXC_E_INCORRECT_DXIL_METADATA DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x000F))
  55. // 0x80AA0010 - Error parsing DDI signature.
  56. #define DXC_E_INCORRECT_DDI_SIGNATURE DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0010))
  57. // 0x80AA0011 - Duplicate part exists in dxil container.
  58. #define DXC_E_DUPLICATE_PART DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0011))
  59. // 0x80AA0012 - Error finding part in dxil container.
  60. #define DXC_E_MISSING_PART DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0012))
  61. // 0x80AA0013 - Malformed DXIL Container.
  62. #define DXC_E_MALFORMED_CONTAINER DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0013))
  63. // 0x80AA0014 - Incorrect Root Signature for shader.
  64. #define DXC_E_INCORRECT_ROOT_SIGNATURE DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0014))
  65. // 0X80AA0015 - DXIL container is missing DebugInfo part.
  66. #define DXC_E_CONTAINER_MISSING_DEBUG DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0015))
  67. // 0X80AA0016 - Unexpected failure in macro expansion.
  68. #define DXC_E_MACRO_EXPANSION_FAILURE DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0016))
  69. // 0X80AA0017 - DXIL optimization pass failed.
  70. #define DXC_E_OPTIMIZATION_FAILED DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0017))
  71. // 0X80AA0018 - General internal error.
  72. #define DXC_E_GENERAL_INTERNAL_ERROR DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0018))
  73. // 0X80AA0019 - Abort compilation error.
  74. #define DXC_E_ABORT_COMPILATION_ERROR DXC_MAKE_HRESULT(DXC_SEVERITY_ERROR,FACILITY_DXC,(0x0019))