[PATCH 1/2] vmwgfx: Emulate depth 32 framebuffers

Konrad Rzeszutek Wilk konrad.wilk at oracle.com
Mon Oct 24 14:25:28 PDT 2011


On Sat, Oct 22, 2011 at 10:29:33AM +0200, Thomas Hellstrom wrote:
> From: Jakob Bornecrantz <jakob at vmware.com>
> 
> Signed-off-by: Jakob Bornecrantz <jakob at vmware.com>
> Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
> ---
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c |   10 +++++++++-
>  1 files changed, 9 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index 39b99db..00ec619 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -679,6 +679,7 @@ static int do_dmabuf_define_gmrfb(struct drm_file *file_priv,
>  				  struct vmw_private *dev_priv,
>  				  struct vmw_framebuffer *framebuffer)
>  {
> +	int depth = framebuffer->base.depth;
>  	size_t fifo_size;
>  	int ret;
>  
> @@ -687,6 +688,13 @@ static int do_dmabuf_define_gmrfb(struct drm_file *file_priv,
>  		SVGAFifoCmdDefineGMRFB body;
>  	} *cmd;
>  
> +	/* Emulate RGBA support, contrary to svga_reg.h this is not
> +	 * supported by hosts. This is only a problem if we are reading

Uh, what if it becomes supported at some point? Should there be some check
against the host version?

(Thinking that some user might be running this older driver with a newer
host that des support 32 - won't that cause issues?)

> +	 * this value later and expecting what we uploaded back.
> +	 */
> +	if (depth == 32)
> +		depth = 24;
> +
>  	fifo_size = sizeof(*cmd);
>  	cmd = kmalloc(fifo_size, GFP_KERNEL);
>  	if (unlikely(cmd == NULL)) {
> @@ -697,7 +705,7 @@ static int do_dmabuf_define_gmrfb(struct drm_file *file_priv,
>  	memset(cmd, 0, fifo_size);
>  	cmd->header = SVGA_CMD_DEFINE_GMRFB;
>  	cmd->body.format.bitsPerPixel = framebuffer->base.bits_per_pixel;
> -	cmd->body.format.colorDepth = framebuffer->base.depth;
> +	cmd->body.format.colorDepth = depth;
>  	cmd->body.format.reserved = 0;
>  	cmd->body.bytesPerLine = framebuffer->base.pitch;
>  	cmd->body.ptr.gmrId = framebuffer->user_handle;
> -- 
> 1.7.4.4
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list