dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] cayman acceleration fixes so far
@ 2011-05-19  4:14 Dave Airlie
  2011-05-19  4:14 ` [PATCH 1/4] drm/radeon/kms: fix incorrect comparison in cayman setup code Dave Airlie
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Dave Airlie @ 2011-05-19  4:14 UTC (permalink / raw)
  To: dri-devel

These 4 patches allow me to run piglit to ~1460/1660 tests with my port
of r600g to cayman. I still have to track down why the DDX composite accel
isn't working though. I suspect we'll need a cayman accel is working flag
as well.

Dave.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/4] drm/radeon/kms: fix incorrect comparison in cayman setup code.
  2011-05-19  4:14 [PATCH 0/4] cayman acceleration fixes so far Dave Airlie
@ 2011-05-19  4:14 ` Dave Airlie
  2011-05-19  4:14 ` [PATCH 2/4] drm/radeon/kms: fix tile_config value reported to userspace on cayman Dave Airlie
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Dave Airlie @ 2011-05-19  4:14 UTC (permalink / raw)
  To: dri-devel

From: Dave Airlie <airlied@redhat.com>

This was leading to a bogus value being programmed to the backend
routing register.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/radeon/ni.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index 3d8a763..a38d745 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -417,7 +417,7 @@ static u32 cayman_get_tile_pipe_to_backend_map(struct radeon_device *rdev,
 		num_shader_engines = 1;
 	if (num_shader_engines > rdev->config.cayman.max_shader_engines)
 		num_shader_engines = rdev->config.cayman.max_shader_engines;
-	if (num_backends_per_asic > num_shader_engines)
+	if (num_backends_per_asic < num_shader_engines)
 		num_backends_per_asic = num_shader_engines;
 	if (num_backends_per_asic > (rdev->config.cayman.max_backends_per_se * num_shader_engines))
 		num_backends_per_asic = rdev->config.cayman.max_backends_per_se * num_shader_engines;
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/4] drm/radeon/kms: fix tile_config value reported to userspace on cayman.
  2011-05-19  4:14 [PATCH 0/4] cayman acceleration fixes so far Dave Airlie
  2011-05-19  4:14 ` [PATCH 1/4] drm/radeon/kms: fix incorrect comparison in cayman setup code Dave Airlie
@ 2011-05-19  4:14 ` Dave Airlie
  2011-05-19  4:14 ` [PATCH 3/4] drm/radeon/cayman: setup hdp to invalidate and flush when asked Dave Airlie
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Dave Airlie @ 2011-05-19  4:14 UTC (permalink / raw)
  To: dri-devel

From: Dave Airlie <airlied@redhat.com>

cayman is reporting the wrong tile config value to userspace, this
causes piglit mipmap generation tests to fail.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/radeon/ni.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index a38d745..99f4f40 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -829,7 +829,7 @@ static void cayman_gpu_init(struct radeon_device *rdev)
 	rdev->config.cayman.tile_config |=
 		((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) << 4;
 	rdev->config.cayman.tile_config |=
-		(gb_addr_config & PIPE_INTERLEAVE_SIZE_MASK) >> PIPE_INTERLEAVE_SIZE_SHIFT;
+		((gb_addr_config & PIPE_INTERLEAVE_SIZE_MASK) >> PIPE_INTERLEAVE_SIZE_SHIFT) << 8;
 	rdev->config.cayman.tile_config |=
 		((gb_addr_config & ROW_SIZE_MASK) >> ROW_SIZE_SHIFT) << 12;
 
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/4] drm/radeon/cayman: setup hdp to invalidate and flush when asked
  2011-05-19  4:14 [PATCH 0/4] cayman acceleration fixes so far Dave Airlie
  2011-05-19  4:14 ` [PATCH 1/4] drm/radeon/kms: fix incorrect comparison in cayman setup code Dave Airlie
  2011-05-19  4:14 ` [PATCH 2/4] drm/radeon/kms: fix tile_config value reported to userspace on cayman Dave Airlie
@ 2011-05-19  4:14 ` Dave Airlie
  2011-05-19  4:14 ` [PATCH 4/4] drm/radeon/kms: add wait idle ioctl for eg->cayman Dave Airlie
  2011-05-19  6:07 ` [PATCH 0/4] cayman acceleration fixes so far Alex Deucher
  4 siblings, 0 replies; 6+ messages in thread
From: Dave Airlie @ 2011-05-19  4:14 UTC (permalink / raw)
  To: dri-devel

From: Dave Airlie <airlied@redhat.com>

On cayman we need to set the bit to cause HDP flushes to invalidate the
HDP cache also.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/radeon/ni.c  |    4 ++++
 drivers/gpu/drm/radeon/nid.h |    2 ++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index 99f4f40..b205ba1 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -931,6 +931,10 @@ static void cayman_gpu_init(struct radeon_device *rdev)
 	WREG32(CB_PERF_CTR3_SEL_0, 0);
 	WREG32(CB_PERF_CTR3_SEL_1, 0);
 
+	tmp = RREG32(HDP_MISC_CNTL);
+	tmp |= HDP_FLUSH_INVALIDATE_CACHE;
+	WREG32(HDP_MISC_CNTL, tmp);
+
 	hdp_host_path_cntl = RREG32(HDP_HOST_PATH_CNTL);
 	WREG32(HDP_HOST_PATH_CNTL, hdp_host_path_cntl);
 
diff --git a/drivers/gpu/drm/radeon/nid.h b/drivers/gpu/drm/radeon/nid.h
index 0f9a08b..b2088c1 100644
--- a/drivers/gpu/drm/radeon/nid.h
+++ b/drivers/gpu/drm/radeon/nid.h
@@ -136,6 +136,8 @@
 #define	HDP_NONSURFACE_INFO				0x2C08
 #define	HDP_NONSURFACE_SIZE				0x2C0C
 #define HDP_ADDR_CONFIG  				0x2F48
+#define HDP_MISC_CNTL					0x2F4C
+#define 	HDP_FLUSH_INVALIDATE_CACHE			(1 << 0)
 
 #define	CC_SYS_RB_BACKEND_DISABLE			0x3F88
 #define	GC_USER_SYS_RB_BACKEND_DISABLE			0x3F8C
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 4/4] drm/radeon/kms: add wait idle ioctl for eg->cayman
  2011-05-19  4:14 [PATCH 0/4] cayman acceleration fixes so far Dave Airlie
                   ` (2 preceding siblings ...)
  2011-05-19  4:14 ` [PATCH 3/4] drm/radeon/cayman: setup hdp to invalidate and flush when asked Dave Airlie
@ 2011-05-19  4:14 ` Dave Airlie
  2011-05-19  6:07 ` [PATCH 0/4] cayman acceleration fixes so far Alex Deucher
  4 siblings, 0 replies; 6+ messages in thread
From: Dave Airlie @ 2011-05-19  4:14 UTC (permalink / raw)
  To: dri-devel

From: Dave Airlie <airlied@redhat.com>

None of the latest GPUs had this hooked up, this is necessary for
correct operation in a lot of cases, however we should test this on a few
GPUs in these families as we've had problems in this area before.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/radeon/radeon_asic.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_asic.c b/drivers/gpu/drm/radeon/radeon_asic.c
index ca57619..d948265 100644
--- a/drivers/gpu/drm/radeon/radeon_asic.c
+++ b/drivers/gpu/drm/radeon/radeon_asic.c
@@ -782,6 +782,7 @@ static struct radeon_asic evergreen_asic = {
 	.hpd_fini = &evergreen_hpd_fini,
 	.hpd_sense = &evergreen_hpd_sense,
 	.hpd_set_polarity = &evergreen_hpd_set_polarity,
+	.ioctl_wait_idle = r600_ioctl_wait_idle,
 	.gui_idle = &r600_gui_idle,
 	.pm_misc = &evergreen_pm_misc,
 	.pm_prepare = &evergreen_pm_prepare,
@@ -828,6 +829,7 @@ static struct radeon_asic sumo_asic = {
 	.hpd_fini = &evergreen_hpd_fini,
 	.hpd_sense = &evergreen_hpd_sense,
 	.hpd_set_polarity = &evergreen_hpd_set_polarity,
+	.ioctl_wait_idle = r600_ioctl_wait_idle,
 	.gui_idle = &r600_gui_idle,
 	.pm_misc = &evergreen_pm_misc,
 	.pm_prepare = &evergreen_pm_prepare,
@@ -874,6 +876,7 @@ static struct radeon_asic btc_asic = {
 	.hpd_fini = &evergreen_hpd_fini,
 	.hpd_sense = &evergreen_hpd_sense,
 	.hpd_set_polarity = &evergreen_hpd_set_polarity,
+	.ioctl_wait_idle = r600_ioctl_wait_idle,
 	.gui_idle = &r600_gui_idle,
 	.pm_misc = &evergreen_pm_misc,
 	.pm_prepare = &evergreen_pm_prepare,
@@ -920,6 +923,7 @@ static struct radeon_asic cayman_asic = {
 	.hpd_fini = &evergreen_hpd_fini,
 	.hpd_sense = &evergreen_hpd_sense,
 	.hpd_set_polarity = &evergreen_hpd_set_polarity,
+	.ioctl_wait_idle = r600_ioctl_wait_idle,
 	.gui_idle = &r600_gui_idle,
 	.pm_misc = &evergreen_pm_misc,
 	.pm_prepare = &evergreen_pm_prepare,
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/4] cayman acceleration fixes so far
  2011-05-19  4:14 [PATCH 0/4] cayman acceleration fixes so far Dave Airlie
                   ` (3 preceding siblings ...)
  2011-05-19  4:14 ` [PATCH 4/4] drm/radeon/kms: add wait idle ioctl for eg->cayman Dave Airlie
@ 2011-05-19  6:07 ` Alex Deucher
  4 siblings, 0 replies; 6+ messages in thread
From: Alex Deucher @ 2011-05-19  6:07 UTC (permalink / raw)
  To: Dave Airlie; +Cc: dri-devel

On Thu, May 19, 2011 at 12:14 AM, Dave Airlie <airlied@gmail.com> wrote:
> These 4 patches allow me to run piglit to ~1460/1660 tests with my port
> of r600g to cayman. I still have to track down why the DDX composite accel
> isn't working though. I suspect we'll need a cayman accel is working flag
> as well.

For the series,

Reviewed-by: Alex Deucher <alexdeucher@gmail.com>

>
> Dave.
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-05-19  6:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-19  4:14 [PATCH 0/4] cayman acceleration fixes so far Dave Airlie
2011-05-19  4:14 ` [PATCH 1/4] drm/radeon/kms: fix incorrect comparison in cayman setup code Dave Airlie
2011-05-19  4:14 ` [PATCH 2/4] drm/radeon/kms: fix tile_config value reported to userspace on cayman Dave Airlie
2011-05-19  4:14 ` [PATCH 3/4] drm/radeon/cayman: setup hdp to invalidate and flush when asked Dave Airlie
2011-05-19  4:14 ` [PATCH 4/4] drm/radeon/kms: add wait idle ioctl for eg->cayman Dave Airlie
2011-05-19  6:07 ` [PATCH 0/4] cayman acceleration fixes so far Alex Deucher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).