-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 05/11/2012 11:03 AM, Paul Berry wrote: > On Gen7, push constants for shader programs are stored in the URB, so > blorp code needs to set aside space for them. This was previously > unnecessary because blorp code was based on HiZ operations, which > don't require any shaders. > > This patch adds a call from gen7_blorp_exec() to > gen7_allocate_push_constants(), to ensure that push constants are > assigned the correct location in the URB. It also extracts a new > function gen7_emit_urb_state() from gen7_upload_urb(), which is > re-used by gen7_blorp_emit_urb_config() to ensure that the URB regions > used by all the pipeline stages leave room for the push constants. > --- > src/mesa/drivers/dri/i965/brw_context.h | 7 +++++++ > src/mesa/drivers/dri/i965/gen7_blorp.cpp | 27 ++++----------------------- > src/mesa/drivers/dri/i965/gen7_urb.c | 23 ++++++++++++++++------- > 3 files changed, 27 insertions(+), 30 deletions(-)
> +/* gen7_urb.c */ > +void > +gen7_allocate_push_constants(struct brw_context *brw); > +void > +gen7_emit_urb_state(struct brw_context *brw, GLuint nr_vs_entries, > + GLuint vs_size, GLuint vs_start); > + To repeat Ian, a space is needed here between prototypes. > @@ -100,31 +100,40 @@ gen7_upload_urb(struct brw_context *brw) > assert(!brw->gs.prog_active); > > gen7_emit_vs_workaround_flush(intel); > + gen7_emit_urb_state(brw, brw->urb.nr_vs_entries, brw->urb.vs_size, > + brw->urb.vs_start); > +} > + > +void > +gen7_emit_urb_state(struct brw_context *brw, GLuint nr_vs_entries, > + GLuint vs_size, GLuint vs_start) > +{ > + struct intel_context *intel = &brw->intel; > > BEGIN_BATCH(2); > OUT_BATCH(_3DSTATE_URB_VS << 16 | (2 - 2)); > - OUT_BATCH(brw->urb.nr_vs_entries | > - ((brw->urb.vs_size - 1) << GEN7_URB_ENTRY_SIZE_SHIFT) | > - (brw->urb.vs_start << GEN7_URB_STARTING_ADDRESS_SHIFT)); > + OUT_BATCH(nr_vs_entries | > + ((vs_size - 1) << GEN7_URB_ENTRY_SIZE_SHIFT) | > + (vs_start << GEN7_URB_STARTING_ADDRESS_SHIFT)); > ADVANCE_BATCH(); There's a whitespace issue in this batch. Other than that, this patch is Reviewed-by: Chad Versace <chad.vers...@linux.intel.com> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJPu9iNAAoJEAIvNt057x8i0GEP/jMZej2VK5eTzxPxQbofO4Kx +OeR7pXSXjwsKhT1QloanN1yz51ZudOl7EkMu3WVCNvzlEKspAWzJSLxt5jwuq0L DlvtyUGLzGC++d4T+8rutXUda2GiivNlV45KoExcypVIn+Xg45xudYvLV3NVMtbV 9ZHxCdoJ1XXCQnikaa2xTge32d9SMowzRzbrujJD8/2x16VG2AYl3X58elTzmkR2 kmpUMIn/vr8VJiqxWgWdGKrRCMvXWSZRBG00Y7+BqUTvzHRaAeOficwosJhVuFH4 1/8Ii6hZkJuq5lmLCTA9I+RXlxHXPZ36rex734CKnm2lxNfF5QdccXw4OrjFXi5k nn4dgcTyUMYb3ofPL3jnEC+AL5ECv9JnpnoSayx769Tch0nVa0qAo9Y6vMCwsfZ0 vHcqbdWBpj7jwQc+aQDNQEoCNYEMhWOwmpL4feieSa/FYSyMxqCDmv7N8jSq+btW cvacIMDYjOPGIECu0MFFrqRM6LYo1gR4MwPELv6tWp/YSAnae31mvxbRJ+lKjCp1 If2IPrDSQqjRqDMcIhYYvCvInUfOA/ZmFHZOtbt6WUni5IqfqTG41o6DHKFO9f2S SBn1TRvHq7+lhUIFSVNXQ9HpDY65UwPceGbVwt3cMXGAcjeOboAr2s8l3AMF3wqn DXSVezpR2xzLkquWcluO =Ej7m -----END PGP SIGNATURE----- _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev