Re: [Mesa-dev] [PATCH] r600: fix FMASK allocation on r600/700

2014-12-12 Thread Marek Olšák
I suggest you compare pitch_tile_max between the color surface and fmask. If it's different, then I think radeon_surface should use the color surface pitch instead of calculating a separate fmask pitch. I don't have any docs for r600-r700, but I have an old address lib that only contains r600-r800

Re: [Mesa-dev] [PATCH] r600: fix FMASK allocation on r600/700

2014-12-11 Thread Dave Airlie
On 11 December 2014 at 06:45, Marek Olšák wrote: > It uses the libdrm surface allocator and FMASK is 2D tiled. Maybe the > rounding of bpp affects the pitch in a bad way. > I found this sentence hidden in tcore fmask allocator. // Note that pitch_tile_max is shared with the color surface and mus

Re: [Mesa-dev] [PATCH] r600: fix FMASK allocation on r600/700

2014-12-10 Thread Marek Olšák
It uses the libdrm surface allocator and FMASK is 2D tiled. Maybe the rounding of bpp affects the pitch in a bad way. Marek On Wed, Dec 10, 2014 at 4:06 PM, Alex Deucher wrote: > On Wed, Dec 10, 2014 at 5:40 AM, Marek Olšák wrote: >> bpe is in bytes, not bits, so you're overallocating the size

Re: [Mesa-dev] [PATCH] r600: fix FMASK allocation on r600/700

2014-12-10 Thread Alex Deucher
On Wed, Dec 10, 2014 at 5:40 AM, Marek Olšák wrote: > bpe is in bytes, not bits, so you're overallocating the size 8 times. > No wonder it works. > > As far as I can see, FMASK allocation is the same on R600 and > Evergreen. Since the allocator accepts bpe in bytes, I multiplied > nr_samples with

Re: [Mesa-dev] [PATCH] r600: fix FMASK allocation on r600/700

2014-12-10 Thread Marek Olšák
bpe is in bytes, not bits, so you're overallocating the size 8 times. No wonder it works. As far as I can see, FMASK allocation is the same on R600 and Evergreen. Since the allocator accepts bpe in bytes, I multiplied nr_samples with bpp and divided by 8. 2xMSAA: bpp = 2 bits nr_samples = log2(bp

[Mesa-dev] [PATCH] r600: fix FMASK allocation on r600/700

2014-12-09 Thread Dave Airlie
From: Dave Airlie According to NDA docs: FMASK surfaces are addressed identically a surface with num_samples bits per element, and log2(num_samples) samples. For example, an FMASK for an 8-sample surface would be addressed identically to a color surface with 8 bits per element and 3 samples. S