diff options
author | Francisco Jerez <currojerez@riseup.net> | 2015-03-20 14:16:09 +0200 |
---|---|---|
committer | Francisco Jerez <currojerez@riseup.net> | 2015-05-04 17:44:17 +0300 |
commit | 046abc998c6951ea8a4aee0a2c1b832f6c877b73 (patch) | |
tree | 2ac6d41c8c3f788c9180e117170e7bdd9b4da342 /src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | |
parent | 3da9f708d4f1375d674fae4d6c6eb06e4c8d9613 (diff) | |
download | external_mesa3d-046abc998c6951ea8a4aee0a2c1b832f6c877b73.zip external_mesa3d-046abc998c6951ea8a4aee0a2c1b832f6c877b73.tar.gz external_mesa3d-046abc998c6951ea8a4aee0a2c1b832f6c877b73.tar.bz2 |
i965: Define helper function to copy an arbitrary live component from some register.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs_visitor.cpp')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index 5e453a1..fc05e77 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -335,6 +335,18 @@ fs_visitor::emit_minmax(enum brw_conditional_mod conditionalmod, const fs_reg &d } } +void +fs_visitor::emit_uniformize(const fs_reg &dst, const fs_reg &src) +{ + const fs_reg chan_index = vgrf(glsl_type::uint_type); + + emit(SHADER_OPCODE_FIND_LIVE_CHANNEL, component(chan_index, 0)) + ->force_writemask_all = true; + emit(SHADER_OPCODE_BROADCAST, component(dst, 0), + src, component(chan_index, 0)) + ->force_writemask_all = true; +} + bool fs_visitor::try_emit_saturate(ir_expression *ir) { |