Skip to content

Commit 408bfe7

Browse files
Junwei Zhangalexdeucher
authored andcommitted
drm/amdgpu: export more gpu info for gfx9
v2: 64-bit aligned for gpu info v3: squash in wave_front_fix Signed-off-by: Ken Wang <Qingqing.Wang@amd.com> Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Qiang Yu <Qiang.Yu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 2c55b16 commit 408bfe7

File tree

4 files changed

+37
-0
lines changed

4 files changed

+37
-0
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,9 @@ struct amdgpu_gfx_config {
967967
unsigned mc_arb_ramcfg;
968968
unsigned gb_addr_config;
969969
unsigned num_rbs;
970+
unsigned gs_vgt_table_depth;
971+
unsigned gs_prim_buffer_depth;
972+
unsigned max_gs_waves_per_vgt;
970973

971974
uint32_t tile_mode_array[32];
972975
uint32_t macrotile_mode_array[16];
@@ -981,6 +984,7 @@ struct amdgpu_gfx_config {
981984
struct amdgpu_cu_info {
982985
uint32_t number; /* total active CU number */
983986
uint32_t ao_cu_mask;
987+
uint32_t wave_front_size;
984988
uint32_t bitmap[4][4];
985989
};
986990

drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,10 +546,21 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
546546

547547
if (amdgpu_ngg) {
548548
dev_info.prim_buf_gpu_addr = adev->gfx.ngg.buf[PRIM].gpu_addr;
549+
dev_info.prim_buf_size = adev->gfx.ngg.buf[PRIM].size;
549550
dev_info.pos_buf_gpu_addr = adev->gfx.ngg.buf[POS].gpu_addr;
551+
dev_info.pos_buf_size = adev->gfx.ngg.buf[POS].size;
550552
dev_info.cntl_sb_buf_gpu_addr = adev->gfx.ngg.buf[CNTL].gpu_addr;
553+
dev_info.cntl_sb_buf_size = adev->gfx.ngg.buf[CNTL].size;
551554
dev_info.param_buf_gpu_addr = adev->gfx.ngg.buf[PARAM].gpu_addr;
555+
dev_info.param_buf_size = adev->gfx.ngg.buf[PARAM].size;
552556
}
557+
dev_info.wave_front_size = adev->gfx.cu_info.wave_front_size;
558+
dev_info.num_shader_visible_vgprs = adev->gfx.config.max_gprs;
559+
dev_info.num_cu_per_sh = adev->gfx.config.max_cu_per_sh;
560+
dev_info.num_tcc_blocks = adev->gfx.config.max_texture_channel_caches;
561+
dev_info.gs_vgt_table_depth = adev->gfx.config.gs_vgt_table_depth;
562+
dev_info.gs_prim_buffer_depth = adev->gfx.config.gs_prim_buffer_depth;
563+
dev_info.max_gs_waves_per_vgt = adev->gfx.config.max_gs_waves_per_vgt;
553564

554565
return copy_to_user(out, &dev_info,
555566
min((size_t)size, sizeof(dev_info))) ? -EFAULT : 0;

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,9 @@ static void gfx_v9_0_gpu_early_init(struct amdgpu_device *adev)
785785
adev->gfx.config.sc_prim_fifo_size_backend = 0x100;
786786
adev->gfx.config.sc_hiz_tile_fifo_size = 0x30;
787787
adev->gfx.config.sc_earlyz_tile_fifo_size = 0x4C0;
788+
adev->gfx.config.gs_vgt_table_depth = 32;
789+
adev->gfx.config.gs_prim_buffer_depth = 1792;
790+
adev->gfx.config.max_gs_waves_per_vgt = 32;
788791
gb_addr_config = VEGA10_GB_ADDR_CONFIG_GOLDEN;
789792
break;
790793
default:

include/uapi/drm/amdgpu_drm.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,25 @@ struct drm_amdgpu_info_device {
767767
__u64 cntl_sb_buf_gpu_addr;
768768
/* NGG Parameter Cache */
769769
__u64 param_buf_gpu_addr;
770+
__u32 prim_buf_size;
771+
__u32 pos_buf_size;
772+
__u32 cntl_sb_buf_size;
773+
__u32 param_buf_size;
774+
/* wavefront size*/
775+
__u32 wave_front_size;
776+
/* shader visible vgprs*/
777+
__u32 num_shader_visible_vgprs;
778+
/* CU per shader array*/
779+
__u32 num_cu_per_sh;
780+
/* number of tcc blocks*/
781+
__u32 num_tcc_blocks;
782+
/* gs vgt table depth*/
783+
__u32 gs_vgt_table_depth;
784+
/* gs primitive buffer depth*/
785+
__u32 gs_prim_buffer_depth;
786+
/* max gs wavefront per vgt*/
787+
__u32 max_gs_waves_per_vgt;
788+
__u32 _pad1;
770789
};
771790

772791
struct drm_amdgpu_info_hw_ip {

0 commit comments

Comments
 (0)