mirror of
https://github.com/par274/sharpemu.git
synced 2026-08-01 23:49:44 +08:00
a030cb5a5d
* [runtime] restore default GC mode * [cpu] add string leaf stubs * [ampr] allow concurrent reads * [bink] keep guest decode path * [kernel] streamline host memory access * [shader] add scalar memory fallback * [gpu] bound guest data pool * [gpu] reduce queue stalls * [video] stabilize guest resources * revert lock file
35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
// Copyright (C) 2026 SharpEmu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Runtime.CompilerServices;
|
|
using SharpEmu.Libs.Gpu;
|
|
using SharpEmu.Libs.Kernel;
|
|
using SharpEmu.Libs.VideoOut;
|
|
using SharpEmu.ShaderCompiler;
|
|
|
|
namespace SharpEmu.Libs.Agc;
|
|
|
|
/// <summary>
|
|
/// Wires the backend-neutral shader compiler to this assembly's HLE services. The
|
|
/// module initializer runs before any Libs code can invoke the evaluator, so the hook
|
|
/// is always installed first.
|
|
/// </summary>
|
|
internal static class AgcShaderCompilerHooks
|
|
{
|
|
[ModuleInitializer]
|
|
[SuppressMessage(
|
|
"Usage",
|
|
"CA2255:The 'ModuleInitializer' attribute should not be used in libraries",
|
|
Justification = "This is the rule's intended advanced scenario: the hook must be " +
|
|
"installed before any code path can reach the evaluator, and every such path " +
|
|
"enters through this assembly.")]
|
|
internal static void Install()
|
|
{
|
|
Gen5ShaderScalarEvaluator.FallbackMemoryReader =
|
|
KernelMemoryCompatExports.TryReadShaderGuestMemory;
|
|
Gen5ShaderScalarEvaluator.GlobalMemoryPool =
|
|
GuestDataPool.Shared;
|
|
}
|
|
}
|