commit x64 compilation from lulu cause the other branch dont seems to compile properly at home

This commit is contained in:
2026-07-17 16:08:20 +02:00
parent c0f3eeb00d
commit 0efa4ee6f7
625 changed files with 117283 additions and 4426 deletions

View File

@ -0,0 +1,79 @@
/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#include "raytracer/raytracer_job.h"
#include "core/geometry.h"
#include "rand/rand.h"
using namespace GS::Raytrace;
//------------------------------------------------------------------------------
void RaytraceJob::Execute(uint)
{
Vector4 pt_s = pt_l + dt_l * (float)start_height;
for (int v = start_height; v < end_height; ++v)
{
Vector4 dt_s = ((pt_r + dt_r * (float)start_height) - (pt_l + dt_l * (float)start_height)) / (float)pitch;
for (int u = start_width; u < end_width; ++u)
{
Vector4 d = (pt_s + dt_s * (float)u - s).Normalized();
core->PrimaryRay(RayGrid(s, d), hdr[v * pitch + u]);
}
pt_s += dt_l;
}
}
void AntialiasJob::Execute(uint)
{
Configuration &config = core->GetConfiguration();
float aa_v_k = config.interlaced_trace_half_frame ? 0.5f : 1.f,
aa_threshold = config.aa_threshold,
aa_jitter = config.aa_jitter;
int aa_sample = config.aa_sample;
// When rendering half frame halve the AA kernel vertically.
for (int v = start_height; v < end_height; ++v)
for (int u = start_width; u < end_width; ++u)
{
Color *o_hdr = &hdr[v * pitch + u];
// Check threshold.
if (
(Vector4::Dist2(o_hdr[0], o_hdr[-1]) < aa_threshold) &&
(Vector4::Dist2(o_hdr[0], o_hdr[-pitch]) < aa_threshold) &&
(Vector4::Dist2(o_hdr[0], o_hdr[1]) < aa_threshold) &&
(Vector4::Dist2(o_hdr[0], o_hdr[pitch]) < aa_threshold)
)
continue;
// Multi-sample.
o_hdr[0].Set(0, 0, 0);
for (int ms_v = 0; ms_v < aa_sample; ++ms_v)
{
// TODO pre-calculate jittered/non-jittered grids.
float ms_v_o = v + ((float)ms_v * aa_v_k) / aa_sample + (aa_jitter ? Random::FRand(0.125f / aa_sample) : 0);
Vector4 dt_s = ((pt_r + dt_r * ms_v_o) - (pt_l + dt_l * ms_v_o)) / (float)pitch,
pt_s = pt_l + dt_l * ms_v_o;
for (int ms_u = 0; ms_u < aa_sample; ++ms_u)
{
float ms_u_o = u + (float)ms_u / aa_sample + (aa_jitter ? Random::FRand(0.125f / aa_sample) : 0);
Vector4 d = (pt_s + dt_s * ms_u_o - s).Normalized();
Color out;
core->PrimaryRay(RayGrid(s, d), out);
o_hdr[0] += out.Clamped(0, 1);
}
}
o_hdr[0] /= (float)(aa_sample * aa_sample);
}
}
//------------------------------------------------------------------------------