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