Skip to content

Commit f19d45f

Browse files
committed
trytrytry
1 parent d92e2db commit f19d45f

File tree

3 files changed

+39
-11
lines changed

3 files changed

+39
-11
lines changed

src/video_core/amdgpu/liverpool.cpp

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -633,31 +633,45 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span<const u32> dcb, std::span<c
633633

634634
const u32 num_bytes = dma_data->NumBytes();
635635
if (dma_data->src_sel == DmaDataSrc::Data && dma_data->dst_sel == DmaDataDst::Gds) {
636+
// LOG_WARNING(Render_Vulkan, "1 - Graphics DMA packet(src:Data & dst:GDS) size = {}", num_bytes);
636637
rasterizer->InlineData(dma_data->dst_addr_lo, &dma_data->data, sizeof(u32),
637638
true);
638639
} else if (dma_data->src_sel == DmaDataSrc::Memory &&
639640
dma_data->dst_sel == DmaDataDst::Gds) {
641+
LOG_WARNING(Render_Vulkan, "2 - Graphics DMA packet(src:Memory & dst:GDS) size = {}",
642+
num_bytes);
640643
rasterizer->CopyBuffer(dma_data->dst_addr_lo, dma_data->SrcAddress<VAddr>(),
641644
num_bytes, true, false);
642645
} else if (dma_data->src_sel == DmaDataSrc::MemoryUsingL2 &&
643646
dma_data->dst_sel == DmaDataDst::Gds) {
647+
LOG_WARNING(Render_Vulkan, "2 - Graphics DMA packet(src:MemoryL2 & dst:GDS) size = {}",
648+
num_bytes);
644649
rasterizer->InlineData(dma_data->dst_addr_lo,
645650
dma_data->SrcAddress<const void*>(), num_bytes, true);
646651
} else if (dma_data->src_sel == DmaDataSrc::Data &&
647652
(dma_data->dst_sel == DmaDataDst::Memory ||
648653
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
654+
LOG_WARNING(Render_Vulkan, "3 - Graphics DMA packet(src:Data & dst:Memory) size = {}",
655+
num_bytes);
649656
rasterizer->InlineData(dma_data->DstAddress<VAddr>(), &dma_data->data,
650657
sizeof(u32), false);
651658
} else if (dma_data->src_sel == DmaDataSrc::Gds &&
652-
dma_data->dst_sel == DmaDataDst::Memory) {
653-
rasterizer->CopyBuffer(dma_data->DstAddress<VAddr>(), dma_data->src_addr_lo,
654-
num_bytes, false, true);
655-
} else if (dma_data->src_sel == DmaDataSrc::Gds &&
656-
dma_data->dst_sel == DmaDataDst::MemoryUsingL2) {
659+
(dma_data->dst_sel == DmaDataDst::Memory ||
660+
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
661+
LOG_WARNING(Render_Vulkan,
662+
"4 - Graphics DMA packet(src:Gds & dst:Memory) size = {}",
663+
num_bytes);
664+
if (num_bytes > 10240) {
665+
rasterizer->CopyBuffer(dma_data->DstAddress<VAddr>(), dma_data->src_addr_lo,
666+
num_bytes, false, true);
667+
}
657668
} else if ((dma_data->src_sel == DmaDataSrc::Memory ||
658669
dma_data->src_sel == DmaDataSrc::MemoryUsingL2) &&
659670
(dma_data->dst_sel == DmaDataDst::Memory ||
660671
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
672+
LOG_WARNING(Render_Vulkan,
673+
"5 - Graphics DMA packet(Last case) size = {}",
674+
num_bytes);
661675
if (num_bytes <= 10240) {
662676
rasterizer->InlineData(dma_data->DstAddress<VAddr>(),
663677
dma_data->SrcAddress<const void*>(), num_bytes,
@@ -852,30 +866,42 @@ Liverpool::Task Liverpool::ProcessCompute(const u32* acb, u32 acb_dwords, u32 vq
852866

853867
const u32 num_bytes = dma_data->NumBytes();
854868
if (dma_data->src_sel == DmaDataSrc::Data && dma_data->dst_sel == DmaDataDst::Gds) {
869+
// LOG_WARNING(Render_Vulkan, "1 - Compute DMA packet(src:Data & dst:GDS) size = {}", num_bytes);
855870
rasterizer->InlineData(dma_data->dst_addr_lo, &dma_data->data, sizeof(u32), true);
856871
} else if (dma_data->src_sel == DmaDataSrc::Memory &&
857872
dma_data->dst_sel == DmaDataDst::Gds) {
873+
LOG_WARNING(Render_Vulkan, "2 - Compute DMA packet(src:Memory & dst:GDS) size = {}",
874+
num_bytes);
858875
rasterizer->CopyBuffer(dma_data->dst_addr_lo, dma_data->SrcAddress<VAddr>(),
859876
num_bytes, true, false);
860877
} else if (dma_data->src_sel == DmaDataSrc::MemoryUsingL2 &&
861878
dma_data->dst_sel == DmaDataDst::Gds) {
879+
LOG_WARNING(Render_Vulkan, "2 - Compute DMA packet(src:MemoryL2 & dst:GDS) size = {}",
880+
num_bytes);
862881
rasterizer->InlineData(dma_data->dst_addr_lo, dma_data->SrcAddress<const void*>(),
863882
num_bytes, true);
864883
} else if (dma_data->src_sel == DmaDataSrc::Data &&
865884
(dma_data->dst_sel == DmaDataDst::Memory ||
866885
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
886+
LOG_WARNING(Render_Vulkan, "3 - Compute DMA packet(src:Data & dst:Memory) size = {}",
887+
num_bytes);
867888
rasterizer->InlineData(dma_data->DstAddress<VAddr>(), &dma_data->data, sizeof(u32),
868889
false);
869890
} else if (dma_data->src_sel == DmaDataSrc::Gds &&
870-
dma_data->dst_sel == DmaDataDst::Memory) {
871-
rasterizer->CopyBuffer(dma_data->DstAddress<VAddr>(), dma_data->src_addr_lo,
872-
num_bytes, false, true);
873-
} else if (dma_data->src_sel == DmaDataSrc::Gds &&
874-
dma_data->dst_sel == DmaDataDst::MemoryUsingL2) {
891+
(dma_data->dst_sel == DmaDataDst::Memory ||
892+
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
893+
LOG_WARNING(Render_Vulkan, "4 - Compute DMA packet(src:Gds & dst:Memory) size = {}",
894+
num_bytes);
895+
if (num_bytes > 10240) {
896+
rasterizer->CopyBuffer(dma_data->DstAddress<VAddr>(), dma_data->src_addr_lo,
897+
num_bytes, false, true);
898+
}
875899
} else if ((dma_data->src_sel == DmaDataSrc::Memory ||
876900
dma_data->src_sel == DmaDataSrc::MemoryUsingL2) &&
877901
(dma_data->dst_sel == DmaDataDst::Memory ||
878902
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
903+
LOG_WARNING(Render_Vulkan, "5 - Compute DMA packet(Last case) size = {}",
904+
num_bytes);
879905
if (num_bytes <= 10240) {
880906
rasterizer->InlineData(dma_data->DstAddress<VAddr>(),
881907
dma_data->SrcAddress<const void*>(), num_bytes, false);

src/video_core/buffer_cache/buffer_cache.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ void BufferCache::InvalidateMemory(VAddr device_addr, u64 size) {
4747
return;
4848
}
4949
if (memory_tracker->IsRegionGpuModified(device_addr, size)) {
50-
ReadMemory(device_addr, size);
50+
//ReadMemory(device_addr, size);
51+
memory_tracker->UnmarkRegionAsGpuModified(device_addr, size);
5152
}
5253
memory_tracker->MarkRegionAsCpuModified(device_addr, size);
5354
}

src/video_core/renderer_vulkan/vk_pipeline_cache.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ bool PipelineCache::RefreshGraphicsKey() {
414414

415415
switch (regs.stage_enable.raw) {
416416
case Liverpool::ShaderStageEnable::VgtStages::EsGs: {
417+
return false;
417418
if (!instance.IsGeometryStageSupported() || !IsGsFeaturesSupported()) {
418419
return false;
419420
}

0 commit comments

Comments
 (0)