The OpenBSD version of struct drm_i915_execbuffer2 doesn't include the
member for cliprect support.  Not entirely sure why.  Perhaps when
Owain Ainsworth added GEM support, it was already obvious that
cliprects were not going to be supported on new hardware and therefore
not worth supporting.

Unfortunately the sna code explicitly initializes these members.
Obviously we can't just add those members without breaking binary
compatibility.  So the diff below takes an easy way out and adds an
#infdef __OpenBSD__ around the initializations.  An alternative would
be to use memset() to zero-initialize the entire struct and skip the
initialization of members that are zero.  What would be preferred?


diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index e0d864d..ff01bd2 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -2627,10 +2627,12 @@ void _kgem_submit(struct kgem *kgem)
                        execbuf.buffer_count = kgem->nexec;
                        execbuf.batch_start_offset = 0;
                        execbuf.batch_len = batch_end*sizeof(uint32_t);
+#ifndef __OpenBSD__
                        execbuf.cliprects_ptr = 0;
                        execbuf.num_cliprects = 0;
                        execbuf.DR1 = 0;
                        execbuf.DR4 = 0;
+#endif
                        execbuf.flags = kgem->ring | kgem->batch_flags;
                        execbuf.rsvd1 = 0;
                        execbuf.rsvd2 = 0;
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to