Implement AddrLib support for GFX12
Add new files image_manager_gfx12.{h,cpp}.
Implement BUF/IMG/SAMP desc changes for GFX12.
Implement compute surface info code using AddrLib3 API (new starting
from GFX12).
Implement algorithm for choosing "best" swizzle mode (starting
from AddrLib3/GFX12, AddrLib provides only list of suitable swizzle mode,
up to client, ROCr, to choose the best). Algorithm implemented follows
behaviour in GFX11 and behaviour for GFX12 on other platforms.
Signed-off-by: David Belanger <david.belanger@amd.com>
Change-Id: Ib344c86228a98bbac5acdab421ee2ef9b1e84eef
Signed-off-by: Chris Freehill <cfreehil@amd.com>
This commit is contained in:
committed by
Chris Freehill
parent
def4a6c326
commit
f8a015f53e
@@ -55,6 +55,7 @@
|
||||
#include "image_manager_ai.h"
|
||||
#include "image_manager_nv.h"
|
||||
#include "image_manager_gfx11.h"
|
||||
#include "image_manager_gfx12.h"
|
||||
#include "device_info.h"
|
||||
|
||||
namespace rocr {
|
||||
@@ -110,14 +111,22 @@ hsa_status_t ImageRuntime::CreateImageManager(hsa_agent_t agent, void* data) {
|
||||
|
||||
ImageManager* image_manager;
|
||||
|
||||
if (major_ver >= 11) {
|
||||
switch (major_ver) {
|
||||
case 12:
|
||||
image_manager = new ImageManagerGfx12();
|
||||
break;
|
||||
case 11:
|
||||
image_manager = new ImageManagerGfx11();
|
||||
} else if (major_ver >= 10) {
|
||||
break;
|
||||
case 10:
|
||||
image_manager = new ImageManagerNv();
|
||||
} else if (major_ver >= 9) {
|
||||
break;
|
||||
case 9:
|
||||
image_manager = new ImageManagerAi();
|
||||
} else {
|
||||
break;
|
||||
default:
|
||||
image_manager = new ImageManagerKv();
|
||||
break;
|
||||
}
|
||||
hsa_error_code = image_manager->Initialize(agent);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user