Browse Source

gl_shader_decompiler: Rework GLSL decompiler type system

GLSL decompiler type system was broken. We converted all return values
to float except for some cases where returning we couldn't and
implicitly broke the rule of returning floats (e.g. for bools or bool
pairs).

Instead of doing this introduce class Expression that knows what type a
return value has and when a consumer wants to use the string it asks for
it with a required type, emitting a runtime error if types are
incompatible.

This has the disadvantage that there's more C++ code, but we can emit
better GLSL code that's easier to read.
ReinUsesLisp 7 năm trước cách đây
mục cha
commit
6c449793b8
1 tập tin đã thay đổi với 413 bổ sung318 xóa
  1. 413 318
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 413 - 318
src/video_core/renderer_opengl/gl_shader_decompiler.cpp


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác