Texture function refactoring To make it easier to branch on the different texture fetching options, a new TextureFunction class is introduced here, which performs the string comparisons and identifies the different options. I also had to add a 5th argument for textureGradOffset and textureProjGradOffset. I added function stubs (with the UNIMPLEMENTED markers) for all new texture functions. Change-Id: I58cde91a2bacb0012bdc34ec85b0befa19a85326 Reviewed-on: https://swiftshader-review.googlesource.com/4116 Tested-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Shader/Shader.cpp b/src/Shader/Shader.cpp index 7767e79..6251359 100644 --- a/src/Shader/Shader.cpp +++ b/src/Shader/Shader.cpp
@@ -865,6 +865,12 @@ case OPCODE_TEXLDD: return "texldd"; case OPCODE_CMP: return "cmp"; case OPCODE_TEXLDL: return "texldl"; + case OPCODE_TEXOFFSET: return "texoffset"; + case OPCODE_TEXLDLOFFSET: return "texldloffset"; + case OPCODE_TEXELFETCH: return "texelfetch"; + case OPCODE_TEXELFETCHOFFSET: return "texelfetchoffset"; + case OPCODE_TEXGRAD: return "texgrad"; + case OPCODE_TEXGRADOFFSET: return "texgradoffset"; case OPCODE_BREAKP: return "breakp"; case OPCODE_TEXSIZE: return "texsize"; case OPCODE_PHASE: return "phase"; @@ -1772,6 +1778,12 @@ case OPCODE_TEXM3X2DEPTH: case OPCODE_TEXLDD: case OPCODE_TEXLDL: + case OPCODE_TEXOFFSET: + case OPCODE_TEXLDLOFFSET: + case OPCODE_TEXELFETCH: + case OPCODE_TEXELFETCHOFFSET: + case OPCODE_TEXGRAD: + case OPCODE_TEXGRADOFFSET: { Parameter &dst = instruction[i]->dst; Parameter &src1 = instruction[i]->src[1];