From 19c6e5919f80babbf7db49745d3b8456b4b9a919 Mon Sep 17 00:00:00 2001 From: Rex Xu Date: Mon, 12 Oct 2015 17:02:21 +0800 Subject: [PATCH] Fix an issue related with texelFetchOffset --- Test/baseResults/newTexture.frag.out | 488 +++++++++++++++-------------- Test/baseResults/spv.newTexture.frag.out | 436 +++++++++++++------------- Test/newTexture.frag | 2 +- Test/spv.newTexture.frag | 2 + glslang/MachineIndependent/ParseHelper.cpp | 2 +- 5 files changed, 480 insertions(+), 450 deletions(-) diff --git a/Test/baseResults/newTexture.frag.out b/Test/baseResults/newTexture.frag.out index 6d43566..083a641 100644 --- a/Test/baseResults/newTexture.frag.out +++ b/Test/baseResults/newTexture.frag.out @@ -52,22 +52,21 @@ Shader version: 430 0:43 Constant: 0:43 3 (const int) 0:43 3 (const int) -0:44 add second child into first child (temp float) -0:44 direct index (temp float) -0:44 'v' (temp 4-component vector of float) +0:44 add second child into first child (temp 4-component vector of float) +0:44 'v' (temp 4-component vector of float) +0:44 textureFetchOffset (global 4-component vector of float) +0:44 'sr' (uniform sampler2DRect) +0:44 'ic2D' (flat in 2-component vector of int) 0:44 Constant: -0:44 1 (const int) -0:44 textureLodOffset (global float) -0:44 's2DShadow' (uniform sampler2DShadow) -0:44 'c3D' (smooth in 3-component vector of float) -0:44 'c1D' (smooth in float) -0:44 Constant: -0:44 3 (const int) -0:44 3 (const int) -0:45 add second child into first child (temp 4-component vector of float) -0:45 'v' (temp 4-component vector of float) -0:45 textureProjLodOffset (global 4-component vector of float) -0:45 's2D' (uniform sampler2D) +0:44 4 (const int) +0:44 4 (const int) +0:45 add second child into first child (temp float) +0:45 direct index (temp float) +0:45 'v' (temp 4-component vector of float) +0:45 Constant: +0:45 1 (const int) +0:45 textureLodOffset (global float) +0:45 's2DShadow' (uniform sampler2DShadow) 0:45 'c3D' (smooth in 3-component vector of float) 0:45 'c1D' (smooth in float) 0:45 Constant: @@ -75,115 +74,124 @@ Shader version: 430 0:45 3 (const int) 0:46 add second child into first child (temp 4-component vector of float) 0:46 'v' (temp 4-component vector of float) -0:46 textureGrad (global 4-component vector of float) -0:46 'sCube' (uniform samplerCube) -0:46 'c3D' (smooth in 3-component vector of float) +0:46 textureProjLodOffset (global 4-component vector of float) +0:46 's2D' (uniform sampler2D) 0:46 'c3D' (smooth in 3-component vector of float) -0:46 'c3D' (smooth in 3-component vector of float) -0:47 add second child into first child (temp float) -0:47 direct index (temp float) -0:47 'v' (temp 4-component vector of float) -0:47 Constant: -0:47 0 (const int) -0:47 textureGradOffset (global float) -0:47 's2DArrayShadow' (uniform sampler2DArrayShadow) -0:47 'c4D' (smooth in 4-component vector of float) -0:47 'c2D' (smooth in 2-component vector of float) -0:47 'c2D' (smooth in 2-component vector of float) -0:47 Constant: -0:47 3 (const int) -0:47 3 (const int) -0:48 add second child into first child (temp 4-component vector of float) -0:48 'v' (temp 4-component vector of float) -0:48 textureProjGrad (global 4-component vector of float) -0:48 's3D' (uniform sampler3D) +0:46 'c1D' (smooth in float) +0:46 Constant: +0:46 3 (const int) +0:46 3 (const int) +0:47 add second child into first child (temp 4-component vector of float) +0:47 'v' (temp 4-component vector of float) +0:47 textureGrad (global 4-component vector of float) +0:47 'sCube' (uniform samplerCube) +0:47 'c3D' (smooth in 3-component vector of float) +0:47 'c3D' (smooth in 3-component vector of float) +0:47 'c3D' (smooth in 3-component vector of float) +0:48 add second child into first child (temp float) +0:48 direct index (temp float) +0:48 'v' (temp 4-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:48 textureGradOffset (global float) +0:48 's2DArrayShadow' (uniform sampler2DArrayShadow) 0:48 'c4D' (smooth in 4-component vector of float) -0:48 'c3D' (smooth in 3-component vector of float) -0:48 'c3D' (smooth in 3-component vector of float) +0:48 'c2D' (smooth in 2-component vector of float) +0:48 'c2D' (smooth in 2-component vector of float) +0:48 Constant: +0:48 3 (const int) +0:48 3 (const int) 0:49 add second child into first child (temp 4-component vector of float) 0:49 'v' (temp 4-component vector of float) -0:49 textureProjGradOffset (global 4-component vector of float) -0:49 's2D' (uniform sampler2D) +0:49 textureProjGrad (global 4-component vector of float) +0:49 's3D' (uniform sampler3D) +0:49 'c4D' (smooth in 4-component vector of float) +0:49 'c3D' (smooth in 3-component vector of float) 0:49 'c3D' (smooth in 3-component vector of float) -0:49 'c2D' (smooth in 2-component vector of float) -0:49 'c2D' (smooth in 2-component vector of float) -0:49 Constant: -0:49 3 (const int) -0:49 3 (const int) -0:51 Sequence -0:51 move second child to first child (temp 4-component vector of int) -0:51 'iv' (temp 4-component vector of int) -0:51 texture (global 4-component vector of int) -0:51 'is2D' (uniform isampler2D) -0:51 'c2D' (smooth in 2-component vector of float) -0:52 add second child into first child (temp 4-component vector of float) -0:52 'v' (temp 4-component vector of float) -0:52 Convert int to float (temp 4-component vector of float) +0:50 add second child into first child (temp 4-component vector of float) +0:50 'v' (temp 4-component vector of float) +0:50 textureProjGradOffset (global 4-component vector of float) +0:50 's2D' (uniform sampler2D) +0:50 'c3D' (smooth in 3-component vector of float) +0:50 'c2D' (smooth in 2-component vector of float) +0:50 'c2D' (smooth in 2-component vector of float) +0:50 Constant: +0:50 3 (const int) +0:50 3 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) 0:52 'iv' (temp 4-component vector of int) -0:53 move second child to first child (temp 4-component vector of int) -0:53 'iv' (temp 4-component vector of int) -0:53 textureProjOffset (global 4-component vector of int) -0:53 'is2D' (uniform isampler2D) -0:53 'c4D' (smooth in 4-component vector of float) -0:53 Constant: -0:53 3 (const int) -0:53 3 (const int) -0:54 add second child into first child (temp 4-component vector of float) -0:54 'v' (temp 4-component vector of float) -0:54 Convert int to float (temp 4-component vector of float) -0:54 'iv' (temp 4-component vector of int) -0:55 move second child to first child (temp 4-component vector of int) -0:55 'iv' (temp 4-component vector of int) -0:55 textureProjLod (global 4-component vector of int) -0:55 'is2D' (uniform isampler2D) -0:55 'c3D' (smooth in 3-component vector of float) -0:55 'c1D' (smooth in float) -0:56 add second child into first child (temp 4-component vector of float) -0:56 'v' (temp 4-component vector of float) -0:56 Convert int to float (temp 4-component vector of float) -0:56 'iv' (temp 4-component vector of int) -0:57 move second child to first child (temp 4-component vector of int) -0:57 'iv' (temp 4-component vector of int) -0:57 textureProjGrad (global 4-component vector of int) -0:57 'is2D' (uniform isampler2D) -0:57 'c3D' (smooth in 3-component vector of float) -0:57 'c2D' (smooth in 2-component vector of float) -0:57 'c2D' (smooth in 2-component vector of float) -0:58 add second child into first child (temp 4-component vector of float) -0:58 'v' (temp 4-component vector of float) -0:58 Convert int to float (temp 4-component vector of float) -0:58 'iv' (temp 4-component vector of int) -0:59 move second child to first child (temp 4-component vector of int) -0:59 'iv' (temp 4-component vector of int) -0:59 texture (global 4-component vector of int) -0:59 'is3D' (uniform isampler3D) -0:59 'c3D' (smooth in 3-component vector of float) -0:59 Constant: -0:59 4.200000 -0:60 add second child into first child (temp 4-component vector of float) -0:60 'v' (temp 4-component vector of float) -0:60 Convert int to float (temp 4-component vector of float) -0:60 'iv' (temp 4-component vector of int) -0:61 move second child to first child (temp 4-component vector of int) -0:61 'iv' (temp 4-component vector of int) -0:61 textureLod (global 4-component vector of int) -0:61 'isCube' (uniform isamplerCube) -0:61 'c3D' (smooth in 3-component vector of float) -0:61 'c1D' (smooth in float) -0:62 add second child into first child (temp 4-component vector of float) -0:62 'v' (temp 4-component vector of float) -0:62 Convert int to float (temp 4-component vector of float) -0:62 'iv' (temp 4-component vector of int) -0:63 move second child to first child (temp 4-component vector of int) -0:63 'iv' (temp 4-component vector of int) -0:63 textureFetch (global 4-component vector of int) -0:63 'is2DArray' (uniform isampler2DArray) -0:63 'ic3D' (flat in 3-component vector of int) -0:63 'ic1D' (flat in int) -0:64 add second child into first child (temp 4-component vector of float) -0:64 'v' (temp 4-component vector of float) -0:64 Convert int to float (temp 4-component vector of float) -0:64 'iv' (temp 4-component vector of int) +0:52 texture (global 4-component vector of int) +0:52 'is2D' (uniform isampler2D) +0:52 'c2D' (smooth in 2-component vector of float) +0:53 add second child into first child (temp 4-component vector of float) +0:53 'v' (temp 4-component vector of float) +0:53 Convert int to float (temp 4-component vector of float) +0:53 'iv' (temp 4-component vector of int) +0:54 move second child to first child (temp 4-component vector of int) +0:54 'iv' (temp 4-component vector of int) +0:54 textureProjOffset (global 4-component vector of int) +0:54 'is2D' (uniform isampler2D) +0:54 'c4D' (smooth in 4-component vector of float) +0:54 Constant: +0:54 3 (const int) +0:54 3 (const int) +0:55 add second child into first child (temp 4-component vector of float) +0:55 'v' (temp 4-component vector of float) +0:55 Convert int to float (temp 4-component vector of float) +0:55 'iv' (temp 4-component vector of int) +0:56 move second child to first child (temp 4-component vector of int) +0:56 'iv' (temp 4-component vector of int) +0:56 textureProjLod (global 4-component vector of int) +0:56 'is2D' (uniform isampler2D) +0:56 'c3D' (smooth in 3-component vector of float) +0:56 'c1D' (smooth in float) +0:57 add second child into first child (temp 4-component vector of float) +0:57 'v' (temp 4-component vector of float) +0:57 Convert int to float (temp 4-component vector of float) +0:57 'iv' (temp 4-component vector of int) +0:58 move second child to first child (temp 4-component vector of int) +0:58 'iv' (temp 4-component vector of int) +0:58 textureProjGrad (global 4-component vector of int) +0:58 'is2D' (uniform isampler2D) +0:58 'c3D' (smooth in 3-component vector of float) +0:58 'c2D' (smooth in 2-component vector of float) +0:58 'c2D' (smooth in 2-component vector of float) +0:59 add second child into first child (temp 4-component vector of float) +0:59 'v' (temp 4-component vector of float) +0:59 Convert int to float (temp 4-component vector of float) +0:59 'iv' (temp 4-component vector of int) +0:60 move second child to first child (temp 4-component vector of int) +0:60 'iv' (temp 4-component vector of int) +0:60 texture (global 4-component vector of int) +0:60 'is3D' (uniform isampler3D) +0:60 'c3D' (smooth in 3-component vector of float) +0:60 Constant: +0:60 4.200000 +0:61 add second child into first child (temp 4-component vector of float) +0:61 'v' (temp 4-component vector of float) +0:61 Convert int to float (temp 4-component vector of float) +0:61 'iv' (temp 4-component vector of int) +0:62 move second child to first child (temp 4-component vector of int) +0:62 'iv' (temp 4-component vector of int) +0:62 textureLod (global 4-component vector of int) +0:62 'isCube' (uniform isamplerCube) +0:62 'c3D' (smooth in 3-component vector of float) +0:62 'c1D' (smooth in float) +0:63 add second child into first child (temp 4-component vector of float) +0:63 'v' (temp 4-component vector of float) +0:63 Convert int to float (temp 4-component vector of float) +0:63 'iv' (temp 4-component vector of int) +0:64 move second child to first child (temp 4-component vector of int) +0:64 'iv' (temp 4-component vector of int) +0:64 textureFetch (global 4-component vector of int) +0:64 'is2DArray' (uniform isampler2DArray) +0:64 'ic3D' (flat in 3-component vector of int) +0:64 'ic1D' (flat in int) +0:65 add second child into first child (temp 4-component vector of float) +0:65 'v' (temp 4-component vector of float) +0:65 Convert int to float (temp 4-component vector of float) +0:65 'iv' (temp 4-component vector of int) 0:66 add second child into first child (temp 4-component vector of int) 0:66 'iv' (temp 4-component vector of int) 0:66 textureFetch (global 4-component vector of int) @@ -306,22 +314,21 @@ Shader version: 430 0:43 Constant: 0:43 3 (const int) 0:43 3 (const int) -0:44 add second child into first child (temp float) -0:44 direct index (temp float) -0:44 'v' (temp 4-component vector of float) +0:44 add second child into first child (temp 4-component vector of float) +0:44 'v' (temp 4-component vector of float) +0:44 textureFetchOffset (global 4-component vector of float) +0:44 'sr' (uniform sampler2DRect) +0:44 'ic2D' (flat in 2-component vector of int) 0:44 Constant: -0:44 1 (const int) -0:44 textureLodOffset (global float) -0:44 's2DShadow' (uniform sampler2DShadow) -0:44 'c3D' (smooth in 3-component vector of float) -0:44 'c1D' (smooth in float) -0:44 Constant: -0:44 3 (const int) -0:44 3 (const int) -0:45 add second child into first child (temp 4-component vector of float) -0:45 'v' (temp 4-component vector of float) -0:45 textureProjLodOffset (global 4-component vector of float) -0:45 's2D' (uniform sampler2D) +0:44 4 (const int) +0:44 4 (const int) +0:45 add second child into first child (temp float) +0:45 direct index (temp float) +0:45 'v' (temp 4-component vector of float) +0:45 Constant: +0:45 1 (const int) +0:45 textureLodOffset (global float) +0:45 's2DShadow' (uniform sampler2DShadow) 0:45 'c3D' (smooth in 3-component vector of float) 0:45 'c1D' (smooth in float) 0:45 Constant: @@ -329,115 +336,124 @@ Shader version: 430 0:45 3 (const int) 0:46 add second child into first child (temp 4-component vector of float) 0:46 'v' (temp 4-component vector of float) -0:46 textureGrad (global 4-component vector of float) -0:46 'sCube' (uniform samplerCube) -0:46 'c3D' (smooth in 3-component vector of float) +0:46 textureProjLodOffset (global 4-component vector of float) +0:46 's2D' (uniform sampler2D) 0:46 'c3D' (smooth in 3-component vector of float) -0:46 'c3D' (smooth in 3-component vector of float) -0:47 add second child into first child (temp float) -0:47 direct index (temp float) -0:47 'v' (temp 4-component vector of float) -0:47 Constant: -0:47 0 (const int) -0:47 textureGradOffset (global float) -0:47 's2DArrayShadow' (uniform sampler2DArrayShadow) -0:47 'c4D' (smooth in 4-component vector of float) -0:47 'c2D' (smooth in 2-component vector of float) -0:47 'c2D' (smooth in 2-component vector of float) -0:47 Constant: -0:47 3 (const int) -0:47 3 (const int) -0:48 add second child into first child (temp 4-component vector of float) -0:48 'v' (temp 4-component vector of float) -0:48 textureProjGrad (global 4-component vector of float) -0:48 's3D' (uniform sampler3D) +0:46 'c1D' (smooth in float) +0:46 Constant: +0:46 3 (const int) +0:46 3 (const int) +0:47 add second child into first child (temp 4-component vector of float) +0:47 'v' (temp 4-component vector of float) +0:47 textureGrad (global 4-component vector of float) +0:47 'sCube' (uniform samplerCube) +0:47 'c3D' (smooth in 3-component vector of float) +0:47 'c3D' (smooth in 3-component vector of float) +0:47 'c3D' (smooth in 3-component vector of float) +0:48 add second child into first child (temp float) +0:48 direct index (temp float) +0:48 'v' (temp 4-component vector of float) +0:48 Constant: +0:48 0 (const int) +0:48 textureGradOffset (global float) +0:48 's2DArrayShadow' (uniform sampler2DArrayShadow) 0:48 'c4D' (smooth in 4-component vector of float) -0:48 'c3D' (smooth in 3-component vector of float) -0:48 'c3D' (smooth in 3-component vector of float) +0:48 'c2D' (smooth in 2-component vector of float) +0:48 'c2D' (smooth in 2-component vector of float) +0:48 Constant: +0:48 3 (const int) +0:48 3 (const int) 0:49 add second child into first child (temp 4-component vector of float) 0:49 'v' (temp 4-component vector of float) -0:49 textureProjGradOffset (global 4-component vector of float) -0:49 's2D' (uniform sampler2D) +0:49 textureProjGrad (global 4-component vector of float) +0:49 's3D' (uniform sampler3D) +0:49 'c4D' (smooth in 4-component vector of float) +0:49 'c3D' (smooth in 3-component vector of float) 0:49 'c3D' (smooth in 3-component vector of float) -0:49 'c2D' (smooth in 2-component vector of float) -0:49 'c2D' (smooth in 2-component vector of float) -0:49 Constant: -0:49 3 (const int) -0:49 3 (const int) -0:51 Sequence -0:51 move second child to first child (temp 4-component vector of int) -0:51 'iv' (temp 4-component vector of int) -0:51 texture (global 4-component vector of int) -0:51 'is2D' (uniform isampler2D) -0:51 'c2D' (smooth in 2-component vector of float) -0:52 add second child into first child (temp 4-component vector of float) -0:52 'v' (temp 4-component vector of float) -0:52 Convert int to float (temp 4-component vector of float) +0:50 add second child into first child (temp 4-component vector of float) +0:50 'v' (temp 4-component vector of float) +0:50 textureProjGradOffset (global 4-component vector of float) +0:50 's2D' (uniform sampler2D) +0:50 'c3D' (smooth in 3-component vector of float) +0:50 'c2D' (smooth in 2-component vector of float) +0:50 'c2D' (smooth in 2-component vector of float) +0:50 Constant: +0:50 3 (const int) +0:50 3 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) 0:52 'iv' (temp 4-component vector of int) -0:53 move second child to first child (temp 4-component vector of int) -0:53 'iv' (temp 4-component vector of int) -0:53 textureProjOffset (global 4-component vector of int) -0:53 'is2D' (uniform isampler2D) -0:53 'c4D' (smooth in 4-component vector of float) -0:53 Constant: -0:53 3 (const int) -0:53 3 (const int) -0:54 add second child into first child (temp 4-component vector of float) -0:54 'v' (temp 4-component vector of float) -0:54 Convert int to float (temp 4-component vector of float) -0:54 'iv' (temp 4-component vector of int) -0:55 move second child to first child (temp 4-component vector of int) -0:55 'iv' (temp 4-component vector of int) -0:55 textureProjLod (global 4-component vector of int) -0:55 'is2D' (uniform isampler2D) -0:55 'c3D' (smooth in 3-component vector of float) -0:55 'c1D' (smooth in float) -0:56 add second child into first child (temp 4-component vector of float) -0:56 'v' (temp 4-component vector of float) -0:56 Convert int to float (temp 4-component vector of float) -0:56 'iv' (temp 4-component vector of int) -0:57 move second child to first child (temp 4-component vector of int) -0:57 'iv' (temp 4-component vector of int) -0:57 textureProjGrad (global 4-component vector of int) -0:57 'is2D' (uniform isampler2D) -0:57 'c3D' (smooth in 3-component vector of float) -0:57 'c2D' (smooth in 2-component vector of float) -0:57 'c2D' (smooth in 2-component vector of float) -0:58 add second child into first child (temp 4-component vector of float) -0:58 'v' (temp 4-component vector of float) -0:58 Convert int to float (temp 4-component vector of float) -0:58 'iv' (temp 4-component vector of int) -0:59 move second child to first child (temp 4-component vector of int) -0:59 'iv' (temp 4-component vector of int) -0:59 texture (global 4-component vector of int) -0:59 'is3D' (uniform isampler3D) -0:59 'c3D' (smooth in 3-component vector of float) -0:59 Constant: -0:59 4.200000 -0:60 add second child into first child (temp 4-component vector of float) -0:60 'v' (temp 4-component vector of float) -0:60 Convert int to float (temp 4-component vector of float) -0:60 'iv' (temp 4-component vector of int) -0:61 move second child to first child (temp 4-component vector of int) -0:61 'iv' (temp 4-component vector of int) -0:61 textureLod (global 4-component vector of int) -0:61 'isCube' (uniform isamplerCube) -0:61 'c3D' (smooth in 3-component vector of float) -0:61 'c1D' (smooth in float) -0:62 add second child into first child (temp 4-component vector of float) -0:62 'v' (temp 4-component vector of float) -0:62 Convert int to float (temp 4-component vector of float) -0:62 'iv' (temp 4-component vector of int) -0:63 move second child to first child (temp 4-component vector of int) -0:63 'iv' (temp 4-component vector of int) -0:63 textureFetch (global 4-component vector of int) -0:63 'is2DArray' (uniform isampler2DArray) -0:63 'ic3D' (flat in 3-component vector of int) -0:63 'ic1D' (flat in int) -0:64 add second child into first child (temp 4-component vector of float) -0:64 'v' (temp 4-component vector of float) -0:64 Convert int to float (temp 4-component vector of float) -0:64 'iv' (temp 4-component vector of int) +0:52 texture (global 4-component vector of int) +0:52 'is2D' (uniform isampler2D) +0:52 'c2D' (smooth in 2-component vector of float) +0:53 add second child into first child (temp 4-component vector of float) +0:53 'v' (temp 4-component vector of float) +0:53 Convert int to float (temp 4-component vector of float) +0:53 'iv' (temp 4-component vector of int) +0:54 move second child to first child (temp 4-component vector of int) +0:54 'iv' (temp 4-component vector of int) +0:54 textureProjOffset (global 4-component vector of int) +0:54 'is2D' (uniform isampler2D) +0:54 'c4D' (smooth in 4-component vector of float) +0:54 Constant: +0:54 3 (const int) +0:54 3 (const int) +0:55 add second child into first child (temp 4-component vector of float) +0:55 'v' (temp 4-component vector of float) +0:55 Convert int to float (temp 4-component vector of float) +0:55 'iv' (temp 4-component vector of int) +0:56 move second child to first child (temp 4-component vector of int) +0:56 'iv' (temp 4-component vector of int) +0:56 textureProjLod (global 4-component vector of int) +0:56 'is2D' (uniform isampler2D) +0:56 'c3D' (smooth in 3-component vector of float) +0:56 'c1D' (smooth in float) +0:57 add second child into first child (temp 4-component vector of float) +0:57 'v' (temp 4-component vector of float) +0:57 Convert int to float (temp 4-component vector of float) +0:57 'iv' (temp 4-component vector of int) +0:58 move second child to first child (temp 4-component vector of int) +0:58 'iv' (temp 4-component vector of int) +0:58 textureProjGrad (global 4-component vector of int) +0:58 'is2D' (uniform isampler2D) +0:58 'c3D' (smooth in 3-component vector of float) +0:58 'c2D' (smooth in 2-component vector of float) +0:58 'c2D' (smooth in 2-component vector of float) +0:59 add second child into first child (temp 4-component vector of float) +0:59 'v' (temp 4-component vector of float) +0:59 Convert int to float (temp 4-component vector of float) +0:59 'iv' (temp 4-component vector of int) +0:60 move second child to first child (temp 4-component vector of int) +0:60 'iv' (temp 4-component vector of int) +0:60 texture (global 4-component vector of int) +0:60 'is3D' (uniform isampler3D) +0:60 'c3D' (smooth in 3-component vector of float) +0:60 Constant: +0:60 4.200000 +0:61 add second child into first child (temp 4-component vector of float) +0:61 'v' (temp 4-component vector of float) +0:61 Convert int to float (temp 4-component vector of float) +0:61 'iv' (temp 4-component vector of int) +0:62 move second child to first child (temp 4-component vector of int) +0:62 'iv' (temp 4-component vector of int) +0:62 textureLod (global 4-component vector of int) +0:62 'isCube' (uniform isamplerCube) +0:62 'c3D' (smooth in 3-component vector of float) +0:62 'c1D' (smooth in float) +0:63 add second child into first child (temp 4-component vector of float) +0:63 'v' (temp 4-component vector of float) +0:63 Convert int to float (temp 4-component vector of float) +0:63 'iv' (temp 4-component vector of int) +0:64 move second child to first child (temp 4-component vector of int) +0:64 'iv' (temp 4-component vector of int) +0:64 textureFetch (global 4-component vector of int) +0:64 'is2DArray' (uniform isampler2DArray) +0:64 'ic3D' (flat in 3-component vector of int) +0:64 'ic1D' (flat in int) +0:65 add second child into first child (temp 4-component vector of float) +0:65 'v' (temp 4-component vector of float) +0:65 Convert int to float (temp 4-component vector of float) +0:65 'iv' (temp 4-component vector of int) 0:66 add second child into first child (temp 4-component vector of int) 0:66 'iv' (temp 4-component vector of int) 0:66 textureFetch (global 4-component vector of int) diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out index d9ca921..c057e8c 100644 --- a/Test/baseResults/spv.newTexture.frag.out +++ b/Test/baseResults/spv.newTexture.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 255 +// Id's are bound by 265 Source GLSL 430 Capability Shader @@ -28,22 +28,23 @@ Linked fragment stage: Name 67 "ic3D" Name 70 "ic1D" Name 77 "ic2D" - Name 102 "sCube" - Name 113 "s2DArrayShadow" - Name 141 "iv" - Name 145 "is2D" - Name 180 "is3D" - Name 192 "isCube" - Name 204 "is2DArray" - Name 214 "iv2" - Name 218 "sCubeShadow" - Name 223 "FragData" - Name 235 "is2Dms" - Name 240 "us2D" - Name 244 "us3D" - Name 248 "usCube" - Name 252 "us2DArray" - Name 254 "ic4D" + Name 86 "sr" + Name 112 "sCube" + Name 123 "s2DArrayShadow" + Name 151 "iv" + Name 155 "is2D" + Name 190 "is3D" + Name 202 "isCube" + Name 214 "is2DArray" + Name 224 "iv2" + Name 228 "sCubeShadow" + Name 233 "FragData" + Name 245 "is2Dms" + Name 250 "us2D" + Name 254 "us3D" + Name 258 "usCube" + Name 262 "us2DArray" + Name 264 "ic4D" Decorate 17(c2D) Smooth Decorate 26(c4D) Smooth Decorate 38(c3D) Smooth @@ -51,13 +52,13 @@ Linked fragment stage: Decorate 67(ic3D) Flat Decorate 70(ic1D) Flat Decorate 77(ic2D) Flat - Decorate 235(is2Dms) NoStaticUse - Decorate 240(us2D) NoStaticUse - Decorate 244(us3D) NoStaticUse - Decorate 248(usCube) NoStaticUse - Decorate 252(us2DArray) NoStaticUse - Decorate 254(ic4D) Flat - Decorate 254(ic4D) NoStaticUse + Decorate 245(is2Dms) NoStaticUse + Decorate 250(us2D) NoStaticUse + Decorate 254(us3D) NoStaticUse + Decorate 258(usCube) NoStaticUse + Decorate 262(us2DArray) NoStaticUse + Decorate 264(ic4D) Flat + Decorate 264(ic4D) NoStaticUse 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -102,70 +103,75 @@ Linked fragment stage: 76: TypePointer Input 51(ivec2) 77(ic2D): 76(ptr) Variable Input 79: 50(int) Constant 4 - 99: TypeImage 6(float) Cube sampled format:Unknown - 100: TypeSampledImage 99 - 101: TypePointer UniformConstant 100 - 102(sCube): 101(ptr) Variable UniformConstant - 110: TypeImage 6(float) 2D depth array sampled format:Unknown - 111: TypeSampledImage 110 - 112: TypePointer UniformConstant 111 -113(s2DArrayShadow): 112(ptr) Variable UniformConstant - 139: TypeVector 50(int) 4 - 140: TypePointer Function 139(ivec4) - 142: TypeImage 50(int) 2D sampled format:Unknown - 143: TypeSampledImage 142 - 144: TypePointer UniformConstant 143 - 145(is2D): 144(ptr) Variable UniformConstant - 177: TypeImage 50(int) 3D sampled format:Unknown - 178: TypeSampledImage 177 - 179: TypePointer UniformConstant 178 - 180(is3D): 179(ptr) Variable UniformConstant - 183: 6(float) Constant 1082549862 - 189: TypeImage 50(int) Cube sampled format:Unknown - 190: TypeSampledImage 189 - 191: TypePointer UniformConstant 190 - 192(isCube): 191(ptr) Variable UniformConstant - 201: TypeImage 50(int) 2D array sampled format:Unknown - 202: TypeSampledImage 201 - 203: TypePointer UniformConstant 202 - 204(is2DArray): 203(ptr) Variable UniformConstant - 213: TypePointer Function 51(ivec2) - 215: TypeImage 6(float) Cube depth sampled format:Unknown - 216: TypeSampledImage 215 - 217: TypePointer UniformConstant 216 -218(sCubeShadow): 217(ptr) Variable UniformConstant - 220: 50(int) Constant 2 - 222: TypePointer Output 7(fvec4) - 223(FragData): 222(ptr) Variable Output - 227: 6(float) Constant 0 - 232: TypeImage 50(int) 2D multi-sampled sampled format:Unknown - 233: TypeSampledImage 232 - 234: TypePointer UniformConstant 233 - 235(is2Dms): 234(ptr) Variable UniformConstant - 236: TypeInt 32 0 - 237: TypeImage 236(int) 2D sampled format:Unknown - 238: TypeSampledImage 237 - 239: TypePointer UniformConstant 238 - 240(us2D): 239(ptr) Variable UniformConstant - 241: TypeImage 236(int) 3D sampled format:Unknown - 242: TypeSampledImage 241 - 243: TypePointer UniformConstant 242 - 244(us3D): 243(ptr) Variable UniformConstant - 245: TypeImage 236(int) Cube sampled format:Unknown - 246: TypeSampledImage 245 - 247: TypePointer UniformConstant 246 - 248(usCube): 247(ptr) Variable UniformConstant - 249: TypeImage 236(int) 2D array sampled format:Unknown - 250: TypeSampledImage 249 - 251: TypePointer UniformConstant 250 - 252(us2DArray): 251(ptr) Variable UniformConstant - 253: TypePointer Input 139(ivec4) - 254(ic4D): 253(ptr) Variable Input + 83: TypeImage 6(float) Rect sampled format:Unknown + 84: TypeSampledImage 83 + 85: TypePointer UniformConstant 84 + 86(sr): 85(ptr) Variable UniformConstant + 89: 51(ivec2) ConstantComposite 79 79 + 109: TypeImage 6(float) Cube sampled format:Unknown + 110: TypeSampledImage 109 + 111: TypePointer UniformConstant 110 + 112(sCube): 111(ptr) Variable UniformConstant + 120: TypeImage 6(float) 2D depth array sampled format:Unknown + 121: TypeSampledImage 120 + 122: TypePointer UniformConstant 121 +123(s2DArrayShadow): 122(ptr) Variable UniformConstant + 149: TypeVector 50(int) 4 + 150: TypePointer Function 149(ivec4) + 152: TypeImage 50(int) 2D sampled format:Unknown + 153: TypeSampledImage 152 + 154: TypePointer UniformConstant 153 + 155(is2D): 154(ptr) Variable UniformConstant + 187: TypeImage 50(int) 3D sampled format:Unknown + 188: TypeSampledImage 187 + 189: TypePointer UniformConstant 188 + 190(is3D): 189(ptr) Variable UniformConstant + 193: 6(float) Constant 1082549862 + 199: TypeImage 50(int) Cube sampled format:Unknown + 200: TypeSampledImage 199 + 201: TypePointer UniformConstant 200 + 202(isCube): 201(ptr) Variable UniformConstant + 211: TypeImage 50(int) 2D array sampled format:Unknown + 212: TypeSampledImage 211 + 213: TypePointer UniformConstant 212 + 214(is2DArray): 213(ptr) Variable UniformConstant + 223: TypePointer Function 51(ivec2) + 225: TypeImage 6(float) Cube depth sampled format:Unknown + 226: TypeSampledImage 225 + 227: TypePointer UniformConstant 226 +228(sCubeShadow): 227(ptr) Variable UniformConstant + 230: 50(int) Constant 2 + 232: TypePointer Output 7(fvec4) + 233(FragData): 232(ptr) Variable Output + 237: 6(float) Constant 0 + 242: TypeImage 50(int) 2D multi-sampled sampled format:Unknown + 243: TypeSampledImage 242 + 244: TypePointer UniformConstant 243 + 245(is2Dms): 244(ptr) Variable UniformConstant + 246: TypeInt 32 0 + 247: TypeImage 246(int) 2D sampled format:Unknown + 248: TypeSampledImage 247 + 249: TypePointer UniformConstant 248 + 250(us2D): 249(ptr) Variable UniformConstant + 251: TypeImage 246(int) 3D sampled format:Unknown + 252: TypeSampledImage 251 + 253: TypePointer UniformConstant 252 + 254(us3D): 253(ptr) Variable UniformConstant + 255: TypeImage 246(int) Cube sampled format:Unknown + 256: TypeSampledImage 255 + 257: TypePointer UniformConstant 256 + 258(usCube): 257(ptr) Variable UniformConstant + 259: TypeImage 246(int) 2D array sampled format:Unknown + 260: TypeSampledImage 259 + 261: TypePointer UniformConstant 260 + 262(us2DArray): 261(ptr) Variable UniformConstant + 263: TypePointer Input 149(ivec4) + 264(ic4D): 263(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(v): 8(ptr) Variable Function - 141(iv): 140(ptr) Variable Function - 214(iv2): 213(ptr) Variable Function + 151(iv): 150(ptr) Variable Function + 224(iv2): 223(ptr) Variable Function 14: 11 Load 13(s2D) 18: 15(fvec2) Load 17(c2D) 19: 7(fvec4) ImageSampleImplicitLod 14 18 @@ -206,138 +212,144 @@ Linked fragment stage: 81: 7(fvec4) Load 9(v) 82: 7(fvec4) FAdd 81 80 Store 9(v) 82 - 83: 45 Load 47(s2DShadow) - 84: 36(fvec3) Load 38(c3D) - 85: 6(float) Load 55(c1D) - 86: 6(float) CompositeExtract 84 2 - 87: 6(float) ImageSampleDrefExplicitLod 83 84 86 85 53 - 88: 7(fvec4) Load 9(v) - 89: 6(float) CompositeExtract 88 1 - 90: 6(float) FAdd 89 87 + 87: 84 Load 86(sr) + 88: 51(ivec2) Load 77(ic2D) + 90: 7(fvec4) ImageFetch 87 88 89 91: 7(fvec4) Load 9(v) - 92: 7(fvec4) CompositeInsert 90 91 1 + 92: 7(fvec4) FAdd 91 90 Store 9(v) 92 - 93: 11 Load 13(s2D) + 93: 45 Load 47(s2DShadow) 94: 36(fvec3) Load 38(c3D) 95: 6(float) Load 55(c1D) - 96: 7(fvec4) ImageSampleProjExplicitLod 93 94 95 53 - 97: 7(fvec4) Load 9(v) - 98: 7(fvec4) FAdd 97 96 - Store 9(v) 98 - 103: 100 Load 102(sCube) + 96: 6(float) CompositeExtract 94 2 + 97: 6(float) ImageSampleDrefExplicitLod 93 94 96 95 53 + 98: 7(fvec4) Load 9(v) + 99: 6(float) CompositeExtract 98 1 + 100: 6(float) FAdd 99 97 + 101: 7(fvec4) Load 9(v) + 102: 7(fvec4) CompositeInsert 100 101 1 + Store 9(v) 102 + 103: 11 Load 13(s2D) 104: 36(fvec3) Load 38(c3D) - 105: 36(fvec3) Load 38(c3D) - 106: 36(fvec3) Load 38(c3D) - 107: 7(fvec4) ImageSampleExplicitLod 103 104 105 106 - 108: 7(fvec4) Load 9(v) - 109: 7(fvec4) FAdd 108 107 - Store 9(v) 109 - 114: 111 Load 113(s2DArrayShadow) - 115: 7(fvec4) Load 26(c4D) - 116: 15(fvec2) Load 17(c2D) - 117: 15(fvec2) Load 17(c2D) - 118: 6(float) CompositeExtract 115 3 - 119: 6(float) ImageSampleDrefExplicitLod 114 115 118 116 117 53 - 120: 7(fvec4) Load 9(v) - 121: 6(float) CompositeExtract 120 0 - 122: 6(float) FAdd 121 119 - 123: 7(fvec4) Load 9(v) - 124: 7(fvec4) CompositeInsert 122 123 0 - Store 9(v) 124 - 125: 21 Load 23(s3D) - 126: 7(fvec4) Load 26(c4D) - 127: 36(fvec3) Load 38(c3D) - 128: 36(fvec3) Load 38(c3D) - 129: 7(fvec4) ImageSampleProjExplicitLod 125 126 127 128 + 105: 6(float) Load 55(c1D) + 106: 7(fvec4) ImageSampleProjExplicitLod 103 104 105 53 + 107: 7(fvec4) Load 9(v) + 108: 7(fvec4) FAdd 107 106 + Store 9(v) 108 + 113: 110 Load 112(sCube) + 114: 36(fvec3) Load 38(c3D) + 115: 36(fvec3) Load 38(c3D) + 116: 36(fvec3) Load 38(c3D) + 117: 7(fvec4) ImageSampleExplicitLod 113 114 115 116 + 118: 7(fvec4) Load 9(v) + 119: 7(fvec4) FAdd 118 117 + Store 9(v) 119 + 124: 121 Load 123(s2DArrayShadow) + 125: 7(fvec4) Load 26(c4D) + 126: 15(fvec2) Load 17(c2D) + 127: 15(fvec2) Load 17(c2D) + 128: 6(float) CompositeExtract 125 3 + 129: 6(float) ImageSampleDrefExplicitLod 124 125 128 126 127 53 130: 7(fvec4) Load 9(v) - 131: 7(fvec4) FAdd 130 129 - Store 9(v) 131 - 132: 11 Load 13(s2D) - 133: 36(fvec3) Load 38(c3D) - 134: 15(fvec2) Load 17(c2D) - 135: 15(fvec2) Load 17(c2D) - 136: 7(fvec4) ImageSampleProjExplicitLod 132 133 134 135 53 - 137: 7(fvec4) Load 9(v) - 138: 7(fvec4) FAdd 137 136 - Store 9(v) 138 - 146: 143 Load 145(is2D) - 147: 15(fvec2) Load 17(c2D) - 148: 139(ivec4) ImageSampleImplicitLod 146 147 - Store 141(iv) 148 - 149: 139(ivec4) Load 141(iv) - 150: 7(fvec4) ConvertSToF 149 - 151: 7(fvec4) Load 9(v) - 152: 7(fvec4) FAdd 151 150 - Store 9(v) 152 - 153: 143 Load 145(is2D) - 154: 7(fvec4) Load 26(c4D) - 155: 139(ivec4) ImageSampleProjImplicitLod 153 154 53 - Store 141(iv) 155 - 156: 139(ivec4) Load 141(iv) - 157: 7(fvec4) ConvertSToF 156 - 158: 7(fvec4) Load 9(v) - 159: 7(fvec4) FAdd 158 157 - Store 9(v) 159 - 160: 143 Load 145(is2D) - 161: 36(fvec3) Load 38(c3D) - 162: 6(float) Load 55(c1D) - 163: 139(ivec4) ImageSampleProjExplicitLod 160 161 162 - Store 141(iv) 163 - 164: 139(ivec4) Load 141(iv) - 165: 7(fvec4) ConvertSToF 164 - 166: 7(fvec4) Load 9(v) - 167: 7(fvec4) FAdd 166 165 - Store 9(v) 167 - 168: 143 Load 145(is2D) - 169: 36(fvec3) Load 38(c3D) - 170: 15(fvec2) Load 17(c2D) - 171: 15(fvec2) Load 17(c2D) - 172: 139(ivec4) ImageSampleProjExplicitLod 168 169 170 171 - Store 141(iv) 172 - 173: 139(ivec4) Load 141(iv) - 174: 7(fvec4) ConvertSToF 173 - 175: 7(fvec4) Load 9(v) - 176: 7(fvec4) FAdd 175 174 - Store 9(v) 176 - 181: 178 Load 180(is3D) - 182: 36(fvec3) Load 38(c3D) - 184: 139(ivec4) ImageSampleImplicitLod 181 182 183 - Store 141(iv) 184 - 185: 139(ivec4) Load 141(iv) - 186: 7(fvec4) ConvertSToF 185 - 187: 7(fvec4) Load 9(v) - 188: 7(fvec4) FAdd 187 186 - Store 9(v) 188 - 193: 190 Load 192(isCube) - 194: 36(fvec3) Load 38(c3D) - 195: 6(float) Load 55(c1D) - 196: 139(ivec4) ImageSampleExplicitLod 193 194 195 - Store 141(iv) 196 - 197: 139(ivec4) Load 141(iv) - 198: 7(fvec4) ConvertSToF 197 - 199: 7(fvec4) Load 9(v) - 200: 7(fvec4) FAdd 199 198 - Store 9(v) 200 - 205: 202 Load 204(is2DArray) - 206: 65(ivec3) Load 67(ic3D) - 207: 50(int) Load 70(ic1D) - 208: 139(ivec4) ImageFetch 205 206 207 - Store 141(iv) 208 - 209: 139(ivec4) Load 141(iv) - 210: 7(fvec4) ConvertSToF 209 - 211: 7(fvec4) Load 9(v) - 212: 7(fvec4) FAdd 211 210 - Store 9(v) 212 - 219: 216 Load 218(sCubeShadow) - 221: 51(ivec2) ImageQuerySizeLod 219 220 - Store 214(iv2) 221 - 224: 7(fvec4) Load 9(v) - 225: 51(ivec2) Load 214(iv2) - 226: 15(fvec2) ConvertSToF 225 - 228: 6(float) CompositeExtract 226 0 - 229: 6(float) CompositeExtract 226 1 - 230: 7(fvec4) CompositeConstruct 228 229 227 227 - 231: 7(fvec4) FAdd 224 230 - Store 223(FragData) 231 + 131: 6(float) CompositeExtract 130 0 + 132: 6(float) FAdd 131 129 + 133: 7(fvec4) Load 9(v) + 134: 7(fvec4) CompositeInsert 132 133 0 + Store 9(v) 134 + 135: 21 Load 23(s3D) + 136: 7(fvec4) Load 26(c4D) + 137: 36(fvec3) Load 38(c3D) + 138: 36(fvec3) Load 38(c3D) + 139: 7(fvec4) ImageSampleProjExplicitLod 135 136 137 138 + 140: 7(fvec4) Load 9(v) + 141: 7(fvec4) FAdd 140 139 + Store 9(v) 141 + 142: 11 Load 13(s2D) + 143: 36(fvec3) Load 38(c3D) + 144: 15(fvec2) Load 17(c2D) + 145: 15(fvec2) Load 17(c2D) + 146: 7(fvec4) ImageSampleProjExplicitLod 142 143 144 145 53 + 147: 7(fvec4) Load 9(v) + 148: 7(fvec4) FAdd 147 146 + Store 9(v) 148 + 156: 153 Load 155(is2D) + 157: 15(fvec2) Load 17(c2D) + 158: 149(ivec4) ImageSampleImplicitLod 156 157 + Store 151(iv) 158 + 159: 149(ivec4) Load 151(iv) + 160: 7(fvec4) ConvertSToF 159 + 161: 7(fvec4) Load 9(v) + 162: 7(fvec4) FAdd 161 160 + Store 9(v) 162 + 163: 153 Load 155(is2D) + 164: 7(fvec4) Load 26(c4D) + 165: 149(ivec4) ImageSampleProjImplicitLod 163 164 53 + Store 151(iv) 165 + 166: 149(ivec4) Load 151(iv) + 167: 7(fvec4) ConvertSToF 166 + 168: 7(fvec4) Load 9(v) + 169: 7(fvec4) FAdd 168 167 + Store 9(v) 169 + 170: 153 Load 155(is2D) + 171: 36(fvec3) Load 38(c3D) + 172: 6(float) Load 55(c1D) + 173: 149(ivec4) ImageSampleProjExplicitLod 170 171 172 + Store 151(iv) 173 + 174: 149(ivec4) Load 151(iv) + 175: 7(fvec4) ConvertSToF 174 + 176: 7(fvec4) Load 9(v) + 177: 7(fvec4) FAdd 176 175 + Store 9(v) 177 + 178: 153 Load 155(is2D) + 179: 36(fvec3) Load 38(c3D) + 180: 15(fvec2) Load 17(c2D) + 181: 15(fvec2) Load 17(c2D) + 182: 149(ivec4) ImageSampleProjExplicitLod 178 179 180 181 + Store 151(iv) 182 + 183: 149(ivec4) Load 151(iv) + 184: 7(fvec4) ConvertSToF 183 + 185: 7(fvec4) Load 9(v) + 186: 7(fvec4) FAdd 185 184 + Store 9(v) 186 + 191: 188 Load 190(is3D) + 192: 36(fvec3) Load 38(c3D) + 194: 149(ivec4) ImageSampleImplicitLod 191 192 193 + Store 151(iv) 194 + 195: 149(ivec4) Load 151(iv) + 196: 7(fvec4) ConvertSToF 195 + 197: 7(fvec4) Load 9(v) + 198: 7(fvec4) FAdd 197 196 + Store 9(v) 198 + 203: 200 Load 202(isCube) + 204: 36(fvec3) Load 38(c3D) + 205: 6(float) Load 55(c1D) + 206: 149(ivec4) ImageSampleExplicitLod 203 204 205 + Store 151(iv) 206 + 207: 149(ivec4) Load 151(iv) + 208: 7(fvec4) ConvertSToF 207 + 209: 7(fvec4) Load 9(v) + 210: 7(fvec4) FAdd 209 208 + Store 9(v) 210 + 215: 212 Load 214(is2DArray) + 216: 65(ivec3) Load 67(ic3D) + 217: 50(int) Load 70(ic1D) + 218: 149(ivec4) ImageFetch 215 216 217 + Store 151(iv) 218 + 219: 149(ivec4) Load 151(iv) + 220: 7(fvec4) ConvertSToF 219 + 221: 7(fvec4) Load 9(v) + 222: 7(fvec4) FAdd 221 220 + Store 9(v) 222 + 229: 226 Load 228(sCubeShadow) + 231: 51(ivec2) ImageQuerySizeLod 229 230 + Store 224(iv2) 231 + 234: 7(fvec4) Load 9(v) + 235: 51(ivec2) Load 224(iv2) + 236: 15(fvec2) ConvertSToF 235 + 238: 6(float) CompositeExtract 236 0 + 239: 6(float) CompositeExtract 236 1 + 240: 7(fvec4) CompositeConstruct 238 239 237 237 + 241: 7(fvec4) FAdd 234 240 + Store 233(FragData) 241 Return FunctionEnd diff --git a/Test/newTexture.frag b/Test/newTexture.frag index 138536d..30e77dc 100644 --- a/Test/newTexture.frag +++ b/Test/newTexture.frag @@ -41,6 +41,7 @@ void main() v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D); v += texelFetch(s3D, ic3D, ic1D); v += texelFetchOffset(s2D, ic2D, 4, ivec2(3)); + v += texelFetchOffset(sr, ic2D, ivec2(4)); v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3)); v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3)); v += textureGrad(sCube, c3D, c3D, c3D); @@ -62,7 +63,6 @@ void main() v += vec4(iv); iv = texelFetch(is2DArray, ic3D, ic1D); v += vec4(iv); - iv += texelFetch(is2Dms, ic2D, ic1D); v += vec4(iv); v += texelFetch(sb, ic1D); diff --git a/Test/spv.newTexture.frag b/Test/spv.newTexture.frag index edb0423..d48d07c 100644 --- a/Test/spv.newTexture.frag +++ b/Test/spv.newTexture.frag @@ -1,6 +1,7 @@ #version 430 uniform sampler2D s2D; +uniform sampler2DRect sr; uniform sampler3D s3D; uniform samplerCube sCube; uniform samplerCubeShadow sCubeShadow; @@ -39,6 +40,7 @@ void main() v.y += textureOffset(s2DShadow, c3D, ivec2(3), c1D); v += texelFetch(s3D, ic3D, ic1D); v += texelFetchOffset(s2D, ic2D, 4, ivec2(3)); + v += texelFetchOffset(sr, ic2D, ivec2(4)); v.y += textureLodOffset(s2DShadow, c3D, c1D, ivec2(3)); v += textureProjLodOffset(s2D, c3D, c1D, ivec2(3)); v += textureGrad(sCube, c3D, c3D, c3D); diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 05d455a..0cdaf82 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1431,7 +1431,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan int arg = -1; switch (callNode.getOp()) { case EOpTextureOffset: arg = 2; break; - case EOpTextureFetchOffset: arg = 3; break; + case EOpTextureFetchOffset: arg = (arg0->getType().getSampler().dim != EsdRect) ? 3 : 2; break; case EOpTextureProjOffset: arg = 2; break; case EOpTextureLodOffset: arg = 3; break; case EOpTextureProjLodOffset: arg = 3; break; -- 2.7.4