diff options
| author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-03-14 09:48:15 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-14 09:48:15 -0400 | 
| commit | 35145bd529c3517e2c366efc764a762092d96edf (patch) | |
| tree | 58c80a2133092b990ca11f3a357d70fab2c5fd0b /src/video_core/engines | |
| parent | 666d431ad8ee4e36f1b7f48d13f3fa63ba3675f2 (diff) | |
| parent | 69c7a01f88a1839a3d950cab968accfa5100ea18 (diff) | |
Merge pull request #3490 from ReinUsesLisp/transform-feedbacks
video_core: Initial implementation of transform feedbacks
Diffstat (limited to 'src/video_core/engines')
| -rw-r--r-- | src/video_core/engines/maxwell_3d.h | 15 | 
1 files changed, 13 insertions, 2 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index 8752a1cfb..8a9e9992e 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h @@ -628,19 +628,26 @@ public:              float depth_range_far;          }; -        struct alignas(32) TransformFeedbackBinding { +        struct TransformFeedbackBinding {              u32 buffer_enable;              u32 address_high;              u32 address_low;              s32 buffer_size;              s32 buffer_offset; +            INSERT_UNION_PADDING_WORDS(3); + +            GPUVAddr Address() const { +                return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) | +                                             address_low); +            }          };          static_assert(sizeof(TransformFeedbackBinding) == 32); -        struct alignas(16) TransformFeedbackLayout { +        struct TransformFeedbackLayout {              u32 stream;              u32 varying_count;              u32 stride; +            INSERT_UNION_PADDING_WORDS(1);          };          static_assert(sizeof(TransformFeedbackLayout) == 16); @@ -652,6 +659,10 @@ public:              return shader_config[index].enable != 0;          } +        bool IsShaderConfigEnabled(Regs::ShaderProgram type) const { +            return IsShaderConfigEnabled(static_cast<std::size_t>(type)); +        } +          union {              struct {                  INSERT_UNION_PADDING_WORDS(0x45);  | 
