* [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).