瀏覽代碼

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 年之前
父節點
當前提交
6c449793b8
共有 1 個文件被更改,包括 413 次插入318 次删除
  1. 413 318
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

文件差異過大導致無法顯示
+ 413 - 318
src/video_core/renderer_opengl/gl_shader_decompiler.cpp


部分文件因文件數量過多而無法顯示