소스 검색

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


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.