#include "ac_surface.h"
#include "amd_family.h"
-#include "addrlib/amdgpu_asic_addr.h"
+#include "addrlib/src/amdgpu_asic_addr.h"
#include "ac_gpu_info.h"
#include "util/macros.h"
#include "util/u_atomic.h"
#include <amdgpu.h>
#include <amdgpu_drm.h>
-#include "addrlib/addrinterface.h"
+#include "addrlib/inc/addrinterface.h"
#ifndef CIASICIDGFXENGINE_SOUTHERNISLAND
#define CIASICIDGFXENGINE_SOUTHERNISLAND 0x0000000A
*addrlib_family = FAMILY_RV;
*addrlib_revid = get_first(AMDGPU_RAVEN_RANGE);
break;
+ case CHIP_RAVEN2:
+ *addrlib_family = FAMILY_RV;
+ *addrlib_revid = get_first(AMDGPU_RAVEN2_RANGE);
+ break;
default:
fprintf(stderr, "amdgpu: Unknown family.\n");
}
unsigned base_align = num_pipes * pipe_interleave_bytes;
- unsigned width = align(config->info.width, cl_width*8);
- unsigned height = align(config->info.height, cl_height*8);
+ unsigned width = align(surf->u.legacy.level[0].nblk_x, cl_width*8);
+ unsigned height = align(surf->u.legacy.level[0].nblk_y, cl_height*8);
unsigned slice_elements = (width * height) / (8*8);
/* Each element of CMASK is a nibble. */
static int
gfx9_get_preferred_swizzle_mode(ADDR_HANDLE addrlib,
ADDR2_COMPUTE_SURFACE_INFO_INPUT *in,
- bool is_fmask, unsigned flags,
- AddrSwizzleMode *swizzle_mode)
+ bool is_fmask, AddrSwizzleMode *swizzle_mode)
{
ADDR_E_RETURNCODE ret;
ADDR2_GET_PREFERRED_SURF_SETTING_INPUT sin = {0};
sin.numSamples = in->numSamples;
sin.numFrags = in->numFrags;
- if (flags & RADEON_SURF_SCANOUT) {
- sin.preferredSwSet.sw_D = 1;
- /* Raven only allows S for displayable surfaces with < 64 bpp, so
- * allow it as fallback */
- sin.preferredSwSet.sw_S = 1;
- } else if (in->flags.depth || in->flags.stencil || is_fmask)
- sin.preferredSwSet.sw_Z = 1;
- else
- sin.preferredSwSet.sw_S = 1;
-
if (is_fmask) {
sin.flags.display = 0;
sin.flags.color = 0;
fout.size = sizeof(ADDR2_COMPUTE_FMASK_INFO_OUTPUT);
ret = gfx9_get_preferred_swizzle_mode(addrlib, in,
- true, surf->flags,
- &fin.swizzleMode);
+ true, &fin.swizzleMode);
if (ret != ADDR_OK)
return ret;
}
r = gfx9_get_preferred_swizzle_mode(addrlib, &AddrSurfInfoIn,
- false, surf->flags,
- &AddrSurfInfoIn.swizzleMode);
+ false, &AddrSurfInfoIn.swizzleMode);
if (r)
return r;
break;
if (!AddrSurfInfoIn.flags.depth) {
r = gfx9_get_preferred_swizzle_mode(addrlib, &AddrSurfInfoIn,
- false, surf->flags,
- &AddrSurfInfoIn.swizzleMode);
+ false, &AddrSurfInfoIn.swizzleMode);
if (r)
return r;
} else
assert(0);
}
- /* Temporary workaround to prevent VM faults and hangs. */
- if (info->family == CHIP_VEGA12)
- surf->fmask_size *= 8;
-
return 0;
}