Skip to content

Commit 141af80

Browse files
committed
New rebase
2 parents 94daa6a + 3b3026f commit 141af80

File tree

8 files changed

+93
-12
lines changed

8 files changed

+93
-12
lines changed

src/core/libraries/zlib/zlib.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void ZlibTaskThread(const std::stop_token& stop) {
5151
if (!task_queue_cv.wait(lock, stop, [&] { return !task_queue.empty(); })) {
5252
break;
5353
}
54-
task = task_queue.back();
54+
task = task_queue.front();
5555
task_queue.pop();
5656
}
5757

@@ -136,7 +136,7 @@ s32 PS4_SYSV_ABI sceZlibWaitForDone(u64* request_id, const u32* timeout) {
136136
} else {
137137
done_queue_cv.wait(lock, pred);
138138
}
139-
*request_id = done_queue.back();
139+
*request_id = done_queue.front();
140140
done_queue.pop();
141141
}
142142
return ORBIS_OK;

src/qt_gui/check_update.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ tr("The Auto Updater allows up to 60 update checks per hour.\\nYou have reached
158158
}
159159
}
160160

161-
latestRev = latestVersion.right(7);
161+
latestRev = latestVersion.right(40);
162162
latestDate = jsonObj["published_at"].toString();
163163

164164
QJsonArray assets = jsonObj["assets"].toArray();
@@ -186,7 +186,7 @@ tr("The Auto Updater allows up to 60 update checks per hour.\\nYou have reached
186186
QDateTime dateTime = QDateTime::fromString(latestDate, Qt::ISODate);
187187
latestDate = dateTime.isValid() ? dateTime.toString("yyyy-MM-dd HH:mm:ss") : "Unknown date";
188188

189-
if (latestRev == currentRev.left(7)) {
189+
if (latestRev == currentRev) {
190190
if (showMessage) {
191191
QMessageBox::information(this, tr("Auto Updater"),
192192
tr("Your version is already up to date!"));
@@ -234,7 +234,7 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate,
234234
"<td>%3</td>"
235235
"<td>(%4)</td>"
236236
"</tr></table></p>")
237-
.arg(currentRev.left(7), currentDate, latestRev, latestDate);
237+
.arg(currentRev.left(7), currentDate, latestRev.left(7), latestDate);
238238

239239
QLabel* updateLabel = new QLabel(updateText, this);
240240
layout->addWidget(updateLabel);

src/qt_gui/translations/pt_BR.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2048,7 +2048,7 @@
20482048
</message>
20492049
<message>
20502050
<source> * Unsupported Vulkan Version</source>
2051-
<translation type="unfinished"> * Unsupported Vulkan Version</translation>
2051+
<translation> * Versão do Vulkan não suportada</translation>
20522052
</message>
20532053
</context>
20542054
<context>

src/qt_gui/translations/tr_TR.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
</message>
139139
<message>
140140
<source>File Exists</source>
141-
<translation>Dosya mevcut</translation>
141+
<translation>Dosya Mevcut</translation>
142142
</message>
143143
<message>
144144
<source>File already exists. Do you want to replace it?</source>
@@ -1221,7 +1221,7 @@
12211221
</message>
12221222
<message>
12231223
<source>Exit shadPS4</source>
1224-
<translation>shadPS4&apos;ten Çık</translation>
1224+
<translation>shadPS4 Çıkış</translation>
12251225
</message>
12261226
<message>
12271227
<source>Exit the application.</source>
@@ -1381,7 +1381,7 @@
13811381
</message>
13821382
<message>
13831383
<source>Game Boot</source>
1384-
<translation>Oyun Başlatma</translation>
1384+
<translation>Oyun Başlat</translation>
13851385
</message>
13861386
<message>
13871387
<source>Only one file can be selected!</source>

src/shader_recompiler/frontend/translate/translate.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ class Translator {
204204
void V_EXP_F32(const GcnInst& inst);
205205
void V_LOG_F32(const GcnInst& inst);
206206
void V_RCP_F32(const GcnInst& inst);
207+
void V_RCP_LEGACY_F32(const GcnInst& inst);
207208
void V_RCP_F64(const GcnInst& inst);
208209
void V_RSQ_F32(const GcnInst& inst);
209210
void V_SQRT_F32(const GcnInst& inst);

src/shader_recompiler/frontend/translate/vector_alu.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ void Translator::EmitVectorAlu(const GcnInst& inst) {
158158
return V_LOG_F32(inst);
159159
case Opcode::V_RCP_F32:
160160
return V_RCP_F32(inst);
161+
case Opcode::V_RCP_LEGACY_F32:
162+
return V_RCP_LEGACY_F32(inst);
161163
case Opcode::V_RCP_F64:
162164
return V_RCP_F64(inst);
163165
case Opcode::V_RCP_IFLAG_F32:
@@ -798,6 +800,20 @@ void Translator::V_RCP_F32(const GcnInst& inst) {
798800
SetDst(inst.dst[0], ir.FPRecip(src0));
799801
}
800802

803+
void Translator::V_RCP_LEGACY_F32(const GcnInst& inst) {
804+
const IR::F32 src0{GetSrc<IR::F32>(inst.src[0])};
805+
const auto result = ir.FPRecip(src0);
806+
const auto inf = ir.FPIsInf(result);
807+
808+
const auto raw_result = ir.ConvertFToU(32, result);
809+
const auto sign_bit = ir.ShiftRightLogical(raw_result, ir.Imm32(31u));
810+
const auto sign_bit_set = ir.INotEqual(sign_bit, ir.Imm32(0u));
811+
const IR::F32 inf_result{ir.Select(sign_bit_set, ir.Imm32(-0.0f), ir.Imm32(0.0f))};
812+
const IR::F32 val{ir.Select(inf, inf_result, result)};
813+
814+
SetDst(inst.dst[0], val);
815+
}
816+
801817
void Translator::V_RCP_F64(const GcnInst& inst) {
802818
const IR::F64 src0{GetSrc64<IR::F64>(inst.src[0])};
803819
SetDst64(inst.dst[0], ir.FPRecip(src0));

src/video_core/amdgpu/liverpool.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span<const u32> dcb, std::span<c
396396
break;
397397
}
398398
case PM4ItOpcode::SetPredication: {
399-
LOG_WARNING(Render_Vulkan, "Unimplemented IT_SET_PREDICATION");
399+
LOG_WARNING(Render, "Unimplemented IT_SET_PREDICATION");
400400
break;
401401
}
402402
case PM4ItOpcode::IndexType: {
@@ -588,8 +588,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span<const u32> dcb, std::span<c
588588
}
589589
case PM4ItOpcode::EventWrite: {
590590
const auto* event = reinterpret_cast<const PM4CmdEventWrite*>(header);
591-
LOG_DEBUG(Render_Vulkan,
592-
"Encountered EventWrite: event_type = {}, event_index = {}",
591+
LOG_DEBUG(Render, "Encountered EventWrite: event_type = {}, event_index = {}",
593592
magic_enum::enum_name(event->event_type.Value()),
594593
magic_enum::enum_name(event->event_index.Value()));
595594
if (event->event_type.Value() == EventType::SoVgtStreamoutFlush) {
@@ -682,6 +681,16 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span<const u32> dcb, std::span<c
682681
}
683682
break;
684683
}
684+
case PM4ItOpcode::CopyData: {
685+
const auto* copy_data = reinterpret_cast<const PM4CmdCopyData*>(header);
686+
LOG_WARNING(Render,
687+
"unhandled IT_COPY_DATA src_sel = {}, dst_sel = {}, "
688+
"count_sel = {}, wr_confirm = {}, engine_sel = {}",
689+
u32(copy_data->src_sel.Value()), u32(copy_data->dst_sel.Value()),
690+
copy_data->count_sel.Value(), copy_data->wr_confirm.Value(),
691+
u32(copy_data->engine_sel.Value()));
692+
break;
693+
}
685694
case PM4ItOpcode::MemSemaphore: {
686695
const auto* mem_semaphore = reinterpret_cast<const PM4CmdMemSemaphore*>(header);
687696
if (mem_semaphore->IsSignaling()) {

src/video_core/amdgpu/pm4_cmds.h

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,61 @@ struct PM4DmaData {
554554
}
555555
};
556556

557+
enum class CopyDataSrc : u32 {
558+
MappedRegister = 0,
559+
Memory = 1,
560+
TCL2 = 2,
561+
Gds = 3,
562+
// Reserved = 4,
563+
Immediate = 5,
564+
Atomic = 6,
565+
GdsAtomic0 = 7,
566+
GdsAtomic1 = 8,
567+
GpuClock = 9,
568+
};
569+
570+
enum class CopyDataDst : u32 {
571+
MappedRegister = 0,
572+
MemorySync = 1,
573+
TCL2 = 2,
574+
Gds = 3,
575+
// Reserved = 4,
576+
MemoryAsync = 5,
577+
};
578+
579+
enum class CopyDataEngine : u32 {
580+
Me = 0,
581+
Pfp = 1,
582+
Ce = 2,
583+
// Reserved = 3
584+
};
585+
586+
struct PM4CmdCopyData {
587+
PM4Type3Header header;
588+
union {
589+
BitField<0, 4, CopyDataSrc> src_sel;
590+
BitField<8, 4, CopyDataDst> dst_sel;
591+
BitField<16, 1, u32> count_sel;
592+
BitField<20, 1, u32> wr_confirm;
593+
BitField<30, 2, CopyDataEngine> engine_sel;
594+
u32 control;
595+
};
596+
u32 src_addr_lo;
597+
u32 src_addr_hi;
598+
u32 dst_addr_lo;
599+
u32 dst_addr_hi;
600+
601+
template <typename T>
602+
T SrcAddress() const {
603+
return std::bit_cast<T>(src_addr_lo | u64(src_addr_hi) << 32);
604+
}
605+
606+
template <typename T>
607+
T DstAddress() const {
608+
return std::bit_cast<T>(dst_addr_lo | u64(dst_addr_hi) << 32);
609+
}
610+
};
611+
557612
struct PM4CmdRewind {
558613
PM4Type3Header header;
559614
union {

0 commit comments

Comments
 (0)