/*========================== begin_copyright_notice ============================

Copyright (C) 2020-2021 Intel Corporation

SPDX-License-Identifier: MIT

============================= end_copyright_notice ===========================*/

#pragma once

class ShaderHash {
public:
  ShaderHash()
      : asmHash(0), nosHash(0), psoHash(0), perShaderPsoHash(0), rtlHash(0), dcHash(0), ltoHash(0), stateHash(0) {}
  QWORD getAsmHash() const { return asmHash; }
  QWORD getNosHash() const { return nosHash; }
  QWORD getPsoHash() const { return psoHash; }
  QWORD getPerShaderPsoHash() const { return perShaderPsoHash; }

  bool is_set() const {
    return ((asmHash | nosHash | psoHash | perShaderPsoHash | rtlHash | dcHash | ltoHash | stateHash) != 0);
  }

  QWORD asmHash;
  QWORD nosHash;
  QWORD psoHash;
  QWORD perShaderPsoHash;
  QWORD rtlHash;
  QWORD dcHash;
  QWORD ltoHash;
  QWORD stateHash;
};
