transform_feedback.h 873 B

123456789101112131415161718192021222324252627282930
  1. // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <array>
  5. #include <vector>
  6. #include "common/common_types.h"
  7. #include "shader_recompiler/runtime_info.h"
  8. #include "video_core/engines/maxwell_3d.h"
  9. namespace VideoCommon {
  10. struct TransformFeedbackState {
  11. struct Layout {
  12. u32 stream;
  13. u32 varying_count;
  14. u32 stride;
  15. };
  16. std::array<Layout, Tegra::Engines::Maxwell3D::Regs::NumTransformFeedbackBuffers> layouts;
  17. std::array<std::array<Tegra::Engines::Maxwell3D::Regs::StreamOutLayout, 32>,
  18. Tegra::Engines::Maxwell3D::Regs::NumTransformFeedbackBuffers>
  19. varyings;
  20. };
  21. std::pair<std::array<Shader::TransformFeedbackVarying, 256>, u32> MakeTransformFeedbackVaryings(
  22. const TransformFeedbackState& state);
  23. } // namespace VideoCommon