[SPIR-V] Fix 1D texture fetches. Fixes #1124

This commit is contained in:
DrChat
2018-04-20 15:24:42 -05:00
parent 2b66a1b68f
commit 86f387ed42
2 changed files with 13 additions and 1 deletions

View File

@@ -1795,6 +1795,12 @@ void SpirvShaderTranslator::ProcessTextureFetchInstruction(
tex_[dim_idx], std::vector<Id>({texture_index}));
auto texture = b.createLoad(texture_ptr);
if (instr.dimension == TextureDimension::k1D) {
// Upgrade 1D src coordinate into 2D
src = b.createCompositeConstruct(vec2_float_type_,
{src, b.makeFloatConstant(0.f)});
}
spv::Builder::TextureParameters params = {0};
params.coords = src;
params.sampler = texture;
@@ -1917,6 +1923,12 @@ void SpirvShaderTranslator::ProcessTextureFetchInstruction(
tex_[dim_idx], std::vector<Id>({texture_index}));
auto texture = b.createLoad(texture_ptr);
if (instr.dimension == TextureDimension::k1D) {
// Upgrade 1D src coordinate into 2D
src = b.createCompositeConstruct(vec2_float_type_,
{src, b.makeFloatConstant(0.f)});
}
spv::Builder::TextureParameters params = {};
params.sampler = texture;
params.coords = src;