Skip to content

Commit ce450eb

Browse files
committed
trytrytry
1 parent d92e2db commit ce450eb

File tree

4 files changed

+35
-4
lines changed

4 files changed

+35
-4
lines changed

src/video_core/amdgpu/liverpool.cpp

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,27 +637,39 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span<const u32> dcb, std::span<c
637637
true);
638638
} else if (dma_data->src_sel == DmaDataSrc::Memory &&
639639
dma_data->dst_sel == DmaDataDst::Gds) {
640+
LOG_WARNING(Render_Vulkan, "2 - Graphics DMA packet(src:Memory & dst:GDS) size = {}",
641+
num_bytes);
640642
rasterizer->CopyBuffer(dma_data->dst_addr_lo, dma_data->SrcAddress<VAddr>(),
641643
num_bytes, true, false);
642644
} else if (dma_data->src_sel == DmaDataSrc::MemoryUsingL2 &&
643645
dma_data->dst_sel == DmaDataDst::Gds) {
646+
LOG_WARNING(Render_Vulkan, "2 - Graphics DMA packet(src:MemoryL2 & dst:GDS) size = {}",
647+
num_bytes);
644648
rasterizer->InlineData(dma_data->dst_addr_lo,
645649
dma_data->SrcAddress<const void*>(), num_bytes, true);
646650
} else if (dma_data->src_sel == DmaDataSrc::Data &&
647651
(dma_data->dst_sel == DmaDataDst::Memory ||
648652
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
653+
LOG_WARNING(Render_Vulkan, "3 - Graphics DMA packet(src:Data & dst:Memory) size = {}",
654+
num_bytes);
649655
rasterizer->InlineData(dma_data->DstAddress<VAddr>(), &dma_data->data,
650656
sizeof(u32), false);
651657
} else if (dma_data->src_sel == DmaDataSrc::Gds &&
652658
dma_data->dst_sel == DmaDataDst::Memory) {
659+
LOG_WARNING(Render_Vulkan,
660+
"4 - Graphics DMA packet(src:Gds & dst:Memory) size = {}",
661+
num_bytes);
653662
rasterizer->CopyBuffer(dma_data->DstAddress<VAddr>(), dma_data->src_addr_lo,
654663
num_bytes, false, true);
655664
} else if (dma_data->src_sel == DmaDataSrc::Gds &&
656-
dma_data->dst_sel == DmaDataDst::MemoryUsingL2) {
665+
dma_data->dst_sel == DmaDataDst::MemoryUsingL2) {
657666
} else if ((dma_data->src_sel == DmaDataSrc::Memory ||
658667
dma_data->src_sel == DmaDataSrc::MemoryUsingL2) &&
659668
(dma_data->dst_sel == DmaDataDst::Memory ||
660669
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
670+
LOG_WARNING(Render_Vulkan,
671+
"5 - Graphics DMA packet(Last case) size = {}",
672+
num_bytes);
661673
if (num_bytes <= 10240) {
662674
rasterizer->InlineData(dma_data->DstAddress<VAddr>(),
663675
dma_data->SrcAddress<const void*>(), num_bytes,
@@ -855,19 +867,27 @@ Liverpool::Task Liverpool::ProcessCompute(const u32* acb, u32 acb_dwords, u32 vq
855867
rasterizer->InlineData(dma_data->dst_addr_lo, &dma_data->data, sizeof(u32), true);
856868
} else if (dma_data->src_sel == DmaDataSrc::Memory &&
857869
dma_data->dst_sel == DmaDataDst::Gds) {
870+
LOG_WARNING(Render_Vulkan, "2 - Compute DMA packet(src:Memory & dst:GDS) size = {}",
871+
num_bytes);
858872
rasterizer->CopyBuffer(dma_data->dst_addr_lo, dma_data->SrcAddress<VAddr>(),
859873
num_bytes, true, false);
860874
} else if (dma_data->src_sel == DmaDataSrc::MemoryUsingL2 &&
861875
dma_data->dst_sel == DmaDataDst::Gds) {
876+
LOG_WARNING(Render_Vulkan, "2 - Compute DMA packet(src:MemoryL2 & dst:GDS) size = {}",
877+
num_bytes);
862878
rasterizer->InlineData(dma_data->dst_addr_lo, dma_data->SrcAddress<const void*>(),
863879
num_bytes, true);
864880
} else if (dma_data->src_sel == DmaDataSrc::Data &&
865881
(dma_data->dst_sel == DmaDataDst::Memory ||
866882
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
883+
LOG_WARNING(Render_Vulkan, "3 - Compute DMA packet(src:Data & dst:Memory) size = {}",
884+
num_bytes);
867885
rasterizer->InlineData(dma_data->DstAddress<VAddr>(), &dma_data->data, sizeof(u32),
868886
false);
869887
} else if (dma_data->src_sel == DmaDataSrc::Gds &&
870888
dma_data->dst_sel == DmaDataDst::Memory) {
889+
LOG_WARNING(Render_Vulkan, "4 - Compute DMA packet(src:Gds & dst:Memory) size = {}",
890+
num_bytes);
871891
rasterizer->CopyBuffer(dma_data->DstAddress<VAddr>(), dma_data->src_addr_lo,
872892
num_bytes, false, true);
873893
} else if (dma_data->src_sel == DmaDataSrc::Gds &&
@@ -876,6 +896,8 @@ Liverpool::Task Liverpool::ProcessCompute(const u32* acb, u32 acb_dwords, u32 vq
876896
dma_data->src_sel == DmaDataSrc::MemoryUsingL2) &&
877897
(dma_data->dst_sel == DmaDataDst::Memory ||
878898
dma_data->dst_sel == DmaDataDst::MemoryUsingL2)) {
899+
LOG_WARNING(Render_Vulkan, "5 - Compute DMA packet(Last case) size = {}",
900+
num_bytes);
879901
if (num_bytes <= 10240) {
880902
rasterizer->InlineData(dma_data->DstAddress<VAddr>(),
881903
dma_data->SrcAddress<const void*>(), num_bytes, false);

src/video_core/amdgpu/types.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,7 @@ inline NumberFormat RemapNumberFormat(const NumberFormat format, const DataForma
320320

321321
inline CompMapping RemapSwizzle(const DataFormat format, const CompMapping swizzle) {
322322
switch (format) {
323-
case DataFormat::Format1_5_5_5:
324-
case DataFormat::Format11_11_10: {
323+
case DataFormat::Format1_5_5_5: {
325324
CompMapping result;
326325
result.r = swizzle.b;
327326
result.g = swizzle.g;
@@ -346,6 +345,14 @@ inline CompMapping RemapSwizzle(const DataFormat format, const CompMapping swizz
346345
result.a = swizzle.r;
347346
return result;
348347
}
348+
case DataFormat::Format11_11_10: {
349+
CompMapping result;
350+
result.r = swizzle.a;
351+
result.g = swizzle.a;
352+
result.b = swizzle.a;
353+
result.a = swizzle.a;
354+
return result;
355+
}
349356
default:
350357
return swizzle;
351358
}

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)