forked from Minki/linux
drm/vmwgfx: Sync legacy multisampling device capability
In favor of SM4.1 multisampling capability, virtual device deprecated old multisampling device capability. Mark legacy multisampling device capability as dead. Rename the function that masks legacy multisample capability to reflect that now it is masking a deprecated feature. Signed-off-by: Deepak Rawat <drawat.floss@gmail.com> Reviewed-by: Thomas Hellström (VMware) <thomas_os@shipmail.org> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Signed-off-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
parent
ef7c7b7497
commit
0652ff3363
@ -163,10 +163,15 @@ typedef enum {
|
||||
SVGA3D_DEVCAP_SURFACEFMT_A16B16G16R16 = 67,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_UYVY = 68,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_YUY2 = 69,
|
||||
SVGA3D_DEVCAP_MULTISAMPLE_NONMASKABLESAMPLES = 70,
|
||||
SVGA3D_DEVCAP_MULTISAMPLE_MASKABLESAMPLES = 71,
|
||||
SVGA3D_DEVCAP_ALPHATOCOVERAGE = 72,
|
||||
SVGA3D_DEVCAP_SUPERSAMPLE = 73,
|
||||
|
||||
/*
|
||||
* Deprecated.
|
||||
*/
|
||||
SVGA3D_DEVCAP_DEAD4 = 70,
|
||||
SVGA3D_DEVCAP_DEAD5 = 71,
|
||||
SVGA3D_DEVCAP_DEAD7 = 72,
|
||||
SVGA3D_DEVCAP_DEAD6 = 73,
|
||||
|
||||
SVGA3D_DEVCAP_AUTOGENMIPMAPS = 74,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_NV12 = 75,
|
||||
SVGA3D_DEVCAP_SURFACEFMT_AYUV = 76,
|
||||
|
@ -126,14 +126,17 @@ int vmw_getparam_ioctl(struct drm_device *dev, void *data,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static u32 vmw_mask_multisample(unsigned int cap, u32 fmt_value)
|
||||
static u32 vmw_mask_legacy_multisample(unsigned int cap, u32 fmt_value)
|
||||
{
|
||||
/*
|
||||
* A version of user-space exists which use MULTISAMPLE_MASKABLESAMPLES
|
||||
* to check the sample count supported by virtual device. Since there
|
||||
* never was support for multisample count for backing MOB return 0.
|
||||
*
|
||||
* MULTISAMPLE_MASKABLESAMPLES devcap is marked as deprecated by virtual
|
||||
* device.
|
||||
*/
|
||||
if (cap == SVGA3D_DEVCAP_MULTISAMPLE_MASKABLESAMPLES)
|
||||
if (cap == SVGA3D_DEVCAP_DEAD5)
|
||||
return 0;
|
||||
|
||||
return fmt_value;
|
||||
@ -164,7 +167,7 @@ static int vmw_fill_compat_cap(struct vmw_private *dev_priv, void *bounce,
|
||||
for (i = 0; i < max_size; ++i) {
|
||||
vmw_write(dev_priv, SVGA_REG_DEV_CAP, i);
|
||||
compat_cap->pairs[i][0] = i;
|
||||
compat_cap->pairs[i][1] = vmw_mask_multisample
|
||||
compat_cap->pairs[i][1] = vmw_mask_legacy_multisample
|
||||
(i, vmw_read(dev_priv, SVGA_REG_DEV_CAP));
|
||||
}
|
||||
spin_unlock(&dev_priv->cap_lock);
|
||||
@ -220,7 +223,7 @@ int vmw_get_cap_3d_ioctl(struct drm_device *dev, void *data,
|
||||
spin_lock(&dev_priv->cap_lock);
|
||||
for (i = 0; i < num; ++i) {
|
||||
vmw_write(dev_priv, SVGA_REG_DEV_CAP, i);
|
||||
*bounce32++ = vmw_mask_multisample
|
||||
*bounce32++ = vmw_mask_legacy_multisample
|
||||
(i, vmw_read(dev_priv, SVGA_REG_DEV_CAP));
|
||||
}
|
||||
spin_unlock(&dev_priv->cap_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user