On Mon, May 30, 2016 at 03:50:36PM +0200, Gerd Hoffmann wrote: > Hi, > > > - add a small core function to registerr HOT_X/HOT_Y for a (cursor) plane, > > e.g. drm_plane_register_hotspot(). That should allocate the properties > > (if they don't exist yet) and then attach those props to the cursor. We > > don't want those props everywhere, but only on drivers that support/need > > them, aka virtual hw. > > Hmm, why is this special to virtual hw? > > > if (crtc->cursor) { > > - ret = drm_mode_cursor_universal(crtc, req, file_priv); > > + if (drm_core_check_feature(DRIVER_ATOMIC)) > > + ret = drm_mode_cursor_atomic(crtc, req, file_priv); > > + else > > + ret = drm_mode_cursor_universal(crtc, req, file_priv); > > goto out; > > > drm_mode_cursor_atomic would simply be a fusing of > > drm_mode_cursor_universal + drm_atomic_helper_update_plane (dump all the > > intermediate variables and store directly in the plane state), with the > > addition of also storing hot_x/y into the plane state. > > Hmm, that'll either make drm_mode_cursor_atomic a big cut+pasted > function, or need quite some refactoring to move common code into > functions callable from both drm_mode_cursor_atomic > +drm_mode_cursor_universal ... > > Why attach the hotspot to the plane? Wouldn't it make more sense to > make it a framebuffer property? We don't have properties on the framebuffer. I guess you /could/ just add it internally to struct drm_framebuffer, and not bother exposing to userspace. I guess that would be a lot simpler, but it also means that atomic userspace can't use hotspots before we add properties to fbs. And doing that is a bit tricky since drm_framebuffer objects are meant to be invariant - this assumption is deeply in-grained into the code all over the place, everything just compares pointers when semantically it means to compare the entire fb (including backing storage pointer/offsets and everything). So would be a bit more work to wire up for atomic userspace, but indeed a lot less work to implement. I'm totally happy if you go with that tradeoff ;-) Cheers, Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization