OSDN Git Service

Implement gather/scatter operations for shader register files.
authorNicolas Capens <capn@google.com>
Mon, 28 May 2018 17:18:59 +0000 (13:18 -0400)
committerNicolas Capens <nicolascapens@google.com>
Tue, 29 May 2018 13:59:43 +0000 (13:59 +0000)
commit5bff4059d646fbd296818d8d17fb38c8590de8a7
tree5fbd593d691def91eb553a8d1fb81dd880c8dc69
parentac3f2faccda5a53f3003ff66b600ed4e4cec1800
Implement gather/scatter operations for shader register files.

This allows to address the registers with a vector of indices.

Also rename 'dynamic' register files to 'indirect addressable', to
disambiguate from 'dynamic indexing' at the shader level. Indexing with
a uniform does not require gather/scatter operations, but does require
indirect addressing.

Bug chromium:845103
Bug skia:7846

Change-Id: I3c42be33def66328688f2900c61c80246bf1e584
Reviewed-on: https://swiftshader-review.googlesource.com/18989
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
src/Shader/PixelProgram.hpp
src/Shader/PixelRoutine.cpp
src/Shader/PixelShader.cpp
src/Shader/Shader.cpp
src/Shader/Shader.hpp
src/Shader/ShaderCore.cpp
src/Shader/ShaderCore.hpp
src/Shader/VertexProgram.cpp
src/Shader/VertexRoutine.cpp
src/Shader/VertexShader.cpp