diff mbox

drm/radeon: don't check mipmap alignment if MIP_ADDRESS is FMASK

Message ID 1362141631-8724-1-git-send-email-maraeo@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Marek Olšák March 1, 2013, 12:40 p.m. UTC
Signed-off-by: Marek Olšák <maraeo@gmail.com>
---
 drivers/gpu/drm/radeon/evergreen_cs.c |    2 +-
 drivers/gpu/drm/radeon/radeon_drv.c   |    3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

Comments

Alex Deucher March 4, 2013, 4:13 p.m. UTC | #1
On Fri, Mar 1, 2013 at 7:40 AM, Marek Olšák <maraeo@gmail.com> wrote:
> Signed-off-by: Marek Olšák <maraeo@gmail.com>

Added to my -fixes queue.

Alex

> ---
>  drivers/gpu/drm/radeon/evergreen_cs.c |    2 +-
>  drivers/gpu/drm/radeon/radeon_drv.c   |    3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c b/drivers/gpu/drm/radeon/evergreen_cs.c
> index d8f5d5f..a759a3d 100644
> --- a/drivers/gpu/drm/radeon/evergreen_cs.c
> +++ b/drivers/gpu/drm/radeon/evergreen_cs.c
> @@ -834,7 +834,7 @@ static int evergreen_cs_track_validate_texture(struct radeon_cs_parser *p,
>                          __func__, __LINE__, toffset, surf.base_align);
>                 return -EINVAL;
>         }
> -       if (moffset & (surf.base_align - 1)) {
> +       if (surf.nsamples <= 1 && moffset & (surf.base_align - 1)) {
>                 dev_warn(p->dev, "%s:%d mipmap bo base %ld not aligned with %ld\n",
>                          __func__, __LINE__, moffset, surf.base_align);
>                 return -EINVAL;
> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
> index 1677584..66a7f0f 100644
> --- a/drivers/gpu/drm/radeon/radeon_drv.c
> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> @@ -70,9 +70,10 @@
>   *   2.27.0 - r600-SI: Add CS ioctl support for async DMA
>   *   2.28.0 - r600-eg: Add MEM_WRITE packet support
>   *   2.29.0 - R500 FP16 color clear registers
> + *   2.30.0 - fix for FMASK texturing
>   */
>  #define KMS_DRIVER_MAJOR       2
> -#define KMS_DRIVER_MINOR       29
> +#define KMS_DRIVER_MINOR       30
>  #define KMS_DRIVER_PATCHLEVEL  0
>  int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
>  int radeon_driver_unload_kms(struct drm_device *dev);
> --
> 1.7.10.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
Paul Menzel March 4, 2013, 5:50 p.m. UTC | #2
Am Montag, den 04.03.2013, 11:13 -0500 schrieb Alex Deucher:
> On Fri, Mar 1, 2013 at 7:40 AM, Marek Olšák <maraeo@gmail.com> wrote:
> > Signed-off-by: Marek Olšák <maraeo@gmail.com>
> 
> Added to my -fixes queue.

Too few information in my opinion as to why this change was made. Please
be strict with that.


Thanks,

Paul
Marek Olšák March 4, 2013, 8:37 p.m. UTC | #3
The MIP_ADDRESS state has 2 meanings. If the texture has one sample
per pixel, it's a pointer to the mipmap chain. If the texture has
multiple samples per pixel, it's a pointer to FMASK, a metadata buffer
needed for reading compressed MSAA textures. AFAIK, the mipmap
alignment rules do not apply to FMASK.

Marek

On Mon, Mar 4, 2013 at 6:50 PM, Paul Menzel
<paulepanter@users.sourceforge.net> wrote:
> Am Montag, den 04.03.2013, 11:13 -0500 schrieb Alex Deucher:
>> On Fri, Mar 1, 2013 at 7:40 AM, Marek Olšák <maraeo@gmail.com> wrote:
>> > Signed-off-by: Marek Olšák <maraeo@gmail.com>
>>
>> Added to my -fixes queue.
>
> Too few information in my opinion as to why this change was made. Please
> be strict with that.
>
>
> Thanks,
>
> Paul
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c b/drivers/gpu/drm/radeon/evergreen_cs.c
index d8f5d5f..a759a3d 100644
--- a/drivers/gpu/drm/radeon/evergreen_cs.c
+++ b/drivers/gpu/drm/radeon/evergreen_cs.c
@@ -834,7 +834,7 @@  static int evergreen_cs_track_validate_texture(struct radeon_cs_parser *p,
 			 __func__, __LINE__, toffset, surf.base_align);
 		return -EINVAL;
 	}
-	if (moffset & (surf.base_align - 1)) {
+	if (surf.nsamples <= 1 && moffset & (surf.base_align - 1)) {
 		dev_warn(p->dev, "%s:%d mipmap bo base %ld not aligned with %ld\n",
 			 __func__, __LINE__, moffset, surf.base_align);
 		return -EINVAL;
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 1677584..66a7f0f 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -70,9 +70,10 @@ 
  *   2.27.0 - r600-SI: Add CS ioctl support for async DMA
  *   2.28.0 - r600-eg: Add MEM_WRITE packet support
  *   2.29.0 - R500 FP16 color clear registers
+ *   2.30.0 - fix for FMASK texturing
  */
 #define KMS_DRIVER_MAJOR	2
-#define KMS_DRIVER_MINOR	29
+#define KMS_DRIVER_MINOR	30
 #define KMS_DRIVER_PATCHLEVEL	0
 int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
 int radeon_driver_unload_kms(struct drm_device *dev);