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
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
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
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
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
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