// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "common/common_types.h" namespace Shader::IR { enum class Patch : u64 { TessellationLodLeft, TessellationLodTop, TessellationLodRight, TessellationLodBottom, TessellationLodInteriorU, TessellationLodInteriorV, Component0, Component1, Component2, Component3, Component4, Component5, Component6, Component7, Component8, Component9, Component10, Component11, Component12, Component13, Component14, Component15, Component16, Component17, Component18, Component19, Component20, Component21, Component22, Component23, Component24, Component25, Component26, Component27, Component28, Component29, Component30, Component31, Component32, Component33, Component34, Component35, Component36, Component37, Component38, Component39, Component40, Component41, Component42, Component43, Component44, Component45, Component46, Component47, Component48, Component49, Component50, Component51, Component52, Component53, Component54, Component55, Component56, Component57, Component58, Component59, Component60, Component61, Component62, Component63, Component64, Component65, Component66, Component67, Component68, Component69, Component70, Component71, Component72, Component73, Component74, Component75, Component76, Component77, Component78, Component79, Component80, Component81, Component82, Component83, Component84, Component85, Component86, Component87, Component88, Component89, Component90, Component91, Component92, Component93, Component94, Component95, Component96, Component97, Component98, Component99, Component100, Component101, Component102, Component103, Component104, Component105, Component106, Component107, Component108, Component109, Component110, Component111, Component112, Component113, Component114, Component115, Component116, Component117, Component118, Component119, }; static_assert(static_cast(Patch::Component119) == 125); [[nodiscard]] bool IsGeneric(Patch patch) noexcept; [[nodiscard]] u32 GenericPatchIndex(Patch patch); [[nodiscard]] u32 GenericPatchElement(Patch patch); } // namespace Shader::IR