Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com> --- src/mesa/drivers/dri/i965/brw_blorp.h | 2 ++ src/mesa/drivers/dri/i965/gen6_blorp.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_blorp.h b/src/mesa/drivers/dri/i965/brw_blorp.h index c0f416a..12b4133 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp.h +++ b/src/mesa/drivers/dri/i965/brw_blorp.h @@ -457,6 +457,8 @@ public: virtual void gen6_emit_surface_states(struct brw_context *brw); virtual void gen7_emit_surface_states(struct brw_context *brw); + virtual void gen6_emit_sampler_state(struct brw_context *brw) const; + private: const float src_x0, src_y0, src_x1, src_y1; const struct gl_framebuffer * const read_fb; diff --git a/src/mesa/drivers/dri/i965/gen6_blorp.cpp b/src/mesa/drivers/dri/i965/gen6_blorp.cpp index c0e3a06..f45dcd4 100644 --- a/src/mesa/drivers/dri/i965/gen6_blorp.cpp +++ b/src/mesa/drivers/dri/i965/gen6_blorp.cpp @@ -1301,6 +1301,36 @@ brw_meta_blit_params::gen6_emit_surface_states(struct brw_context *brw) &wm_stage_state); } +void +brw_meta_blit_params::gen6_emit_sampler_state(struct brw_context *brw) const +{ + const float min_lod = -1000.0f; + const float max_lod = 1000.0f; + const float lod_bias = 0.0f; + const float max_anisotropy = 1.0f; + const struct gl_sampler_object sampler = + { 0, 0, 0, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, + filter, filter, { 0.0, 0.0, 0.0, 0.0 }, min_lod, max_lod, lod_bias, + max_anisotropy, GL_NONE, GL_LEQUAL, GL_DECODE_EXT, GL_FALSE }; + + uint32_t sampler_offset; + uint32_t *sampler_state = (uint32_t *) + brw_state_batch(brw, AUB_TRACE_SAMPLER_STATE, 16, 32, &sampler_offset); + + const struct gl_renderbuffer *irb = read_fb->_ColorReadBuffer; + const bool tex_cube_map_seamless = false; + const float tex_unit_lod_bias = 0.0f; + const bool is_integer_format = false; + brw_update_sampler_state(brw, + target, tex_cube_map_seamless, + tex_unit_lod_bias, + irb->Format, irb->_BaseFormat, + is_integer_format, + &sampler, + sampler_state, sampler_offset); + gen6_blorp_emit_sampler_state_pointers(brw, sampler_offset); +} + /** * \brief Execute a blit or render pass operation. * -- 1.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev