Commit graph

1428 commits

Author SHA1 Message Date
Matt Pharr
b4ce9687e6
Merge pull request #544 from k-badz/kbadz/black_image_fix
Some checks are pending
cpu-macos-build-and-test / Build and test (push) Waiting to run
cpu-macos-build-and-test / Build and test-1 (push) Waiting to run
cpu-macos-build-and-test / Build and test-2 (push) Waiting to run
cpu-windows-build-and-test / Build and test (push) Waiting to run
cpu-windows-build-and-test / Build and test-1 (push) Waiting to run
cpu-windows-build-and-test / Build and test-2 (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 12.9.1, optix-7.7.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 12.9.1, optix-7.7.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 12.9.1, optix-8.1.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 12.9.1, optix-8.1.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 12.9.1, optix-9.0.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 12.9.1, optix-9.0.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 13.0.1, optix-7.7.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 13.0.1, optix-7.7.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 13.0.1, optix-8.1.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 13.0.1, optix-8.1.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 13.0.1, optix-9.0.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 13.0.1, optix-9.0.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 13.1.1, optix-7.7.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 13.1.1, optix-7.7.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 13.1.1, optix-8.1.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 13.1.1, optix-8.1.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 13.1.1, optix-9.0.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 13.1.1, optix-9.0.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 13.2.0, optix-7.7.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 13.2.0, optix-7.7.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 13.2.0, optix-8.1.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 13.2.0, optix-8.1.0) (push) Waiting to run
gpu-build-only / GPU Build Only (ubuntu-24.04, CUDA 13.2.0, optix-9.0.0) (push) Waiting to run
gpu-build-only / GPU Build Only (windows-2022, CUDA 13.2.0, optix-9.0.0) (push) Waiting to run
Fix recent-MSVC device miscompile causing NaNs and black images
2026-09-08 11:24:27 -07:00
Matt Pharr
dc50b77c79 Update README.md: +hdrview, remove stale prerelease verbiage 2026-09-07 19:27:38 -07:00
Mark Bolstad
5f7a606806 Fix double-precision interval arithmetic in PBRT_FLOAT_AS_DOUBLE build
NextFloatUp(double) and NextFloatDown(double) were defined at line 326/340
in float.h, after AddRoundUp/AddRoundDown at line 199. At those call sites
only NextFloatUp/Down(float) was visible, so double arguments silently
converted to float — giving float-scale intervals even with Float=double.

Add forward declarations of the double overloads before AddRound* so
overload resolution selects the correct 64-bit implementation. This fixes
the earth-sphere penetration bug: the camera at 0.5m altitude now produces
a tiny double-precision c interval (~6.4 km²) instead of [-16, 28], and
t0 (the near intersection at 0.5m) is correctly selected over t1 (the
far intersection through the earth at 12742 km).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 16:50:27 -07:00
Matt Pharr
0fef7de38d
Merge pull request #545 from jaxvanyang/patch-1
Add missing DCI_P3 gamut option to rgb2spec_opt help message
2026-06-14 15:54:29 -07:00
Jax Young
bfaf7c8f0e
Add missing DCI_P3 gamut option to rgb2spec_opt help message 2026-06-11 22:36:59 +08:00
k-badz
b3428aad1b Work around recent-MSVC device miscompile causing black GPU image
std::min/max's std::initializer_list overload miscompiles in device code when
built with recent MSVC build tools: the call returns garbage, which becomes NaNs
in the interval math and a bad pointer in RGBFilm::AddSample, effectively creating
black image result. The CPU path with the same code is fine; the known workaround
before was to downgrade MSVC (mmp/pbrt-v4#495). Use nested binary std::min/std::max instead.

Also move RGBToSpectrumTable::res to namespace scope; the same toolchain won't
take a class member as an array bound in a member type-alias.

Also.. change std::copysign to pstd:: variant as the std one emits wrong device code.
2026-06-08 00:38:53 +02:00
Matt Pharr
7154d8268b
Merge pull request #518 from gonsolo/conversion
Suppress a deprecation warning.
2026-05-16 07:42:02 -07:00
Matt Pharr
0575eaff52 github: now on to CPU CI failures 2026-05-16 06:08:41 -07:00
Matt Pharr
2606a2b351 github: try n+2 to get GPU CI working again 2026-05-15 18:07:30 -07:00
Matt Pharr
0bb1c5e48d github: try n+1 to get GPU CI working again 2026-05-15 16:25:44 -07:00
Matt Pharr
62a128d7ce github: try n to get GPU CI working again 2026-05-15 14:59:31 -07:00
Matt Pharr
ab9f2136a5 Fix nvcc __host__ __device__ warning for OptiXAggregate::BVH
nvcc marks implicitly-defined special members __host__ __device__, so
the implicit BVH copy ctor/dtor (which call std::vector's host-only
members) triggered warning 20011-D. The warning chain was driven by
AsyncJob<GAS> copying GAS, and thus BVH, by value.

Make BVH move-only with out-of-line special members and switch the
top-level GAS jobs to AsyncJob<GAS *> so the async machinery only ever
copies a pointer. This keeps the shared parallel.h/pstd.h utilities
untouched.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 14:38:53 -07:00
Matt Pharr
529988579b github: attempt to fix CI GPU builds 2026-05-15 14:32:13 -07:00
Matt Pharr
64ba33e488 github: ongoing CI build fix attempts 2026-05-14 06:04:41 -07:00
Matt Pharr
2ef6e1386b github: bump version of jimver/cuda-toolkit 2026-05-13 05:57:59 -07:00
Matt Pharr
6d4aed2eee github: bump to actions/checkout@v5 2026-05-13 05:57:59 -07:00
Matt Pharr
016380281a
Merge pull request #538 from mpriestman/correct-maxvalue-return-type
Correct return type of SampledGrid::MaxValue
2026-05-12 17:01:29 -07:00
Matt Pharr
eef3a6ef63
Merge pull request #540 from swahtz/fix/cie_1931_2deg_ybar_547nm
Fix a typo at ȳ(547 nm) in CIE 1931 2° observer table
2026-05-01 15:44:02 -07:00
Jonathan Swartz
247b2f38df
Fix a typo at ȳ(547 nm) in CIE 1931 2° observer table
The tabulated value was 0.9874812.
Per CIE 018:2019 Table 6 (DOI 10.25039/CIE.DS.xvudnb9b), the correct
value is 0.9874182.  Verification from CIE published data:

```
import urllib.request, csv, io

url = "https://files.cie.co.at/CIE_xyz_1931_2deg.csv"
data = urllib.request.urlopen(url).read().decode()

for row in csv.reader(io.StringIO(data)):
    if row and row[0].strip() == "547":
        print(f"y-bar at 547nm = {row[2]}")
        break
```

Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
2026-04-23 11:19:11 +12:00
Michael Priestman
bb5afcab9e Correct return type of SampledGrid::MaxValue
I think this should be return type auto like all the other functions
in this class. I suspect the code compiles because at the moment all
uses of SampledGrid expect MaxValue to actually return type Float.
2026-04-08 22:05:39 +01:00
Matt Pharr
8c19f30455
Merge pull request #521 from gonsolo/noseven
Three more occurrences of OPTIX7.
2025-12-08 14:30:32 -08:00
Matt Pharr
91bc6ca69b Another attempt at fixing the GPU CI build (#5) 2025-10-24 17:16:34 -07:00
Matt Pharr
f358078114 Another attempt at fixing the GPU CI build (#4) 2025-10-24 17:03:35 -07:00
Matt Pharr
b6d9ce0831 Another attempt at fixing the GPU CI build (#3) 2025-10-24 15:31:31 -07:00
Matt Pharr
6e32904799 Another attempt at fixing the GPU CI build (#2) 2025-10-24 14:23:27 -07:00
Matt Pharr
500a5be84d Another attempt at fixing the GPU CI build 2025-10-24 13:46:23 -07:00
Matt Pharr
5805005167 Attempt to fix ci-gpu CI build
- apt-get update
- Fix path to windows pbrt.exe
- Stop caching OptiX headers; hopefully no longer needed
2025-10-24 06:38:14 -07:00
Gon Solo
344b2beef4 Three more occurrences of OPTIX7. 2025-10-24 08:52:09 +02:00
Gon Solo
da60a89ca2 Restrict to GCC and Clang. 2025-10-24 08:47:06 +02:00
Matt Pharr
d2dc5b4137 Drop OptiX 7.5.0, add 9.0.0 to CI builds 2025-10-23 19:28:00 -07:00
Matt Pharr
935c10f7f4
Merge pull request #516 from gonsolo/noseven
Remove Optix version.
2025-10-23 19:27:02 -07:00
Matt Pharr
8de4354af0
Merge pull request #517 from gonsolo/unused
Remove unused filterOptions.
2025-10-23 11:56:13 -07:00
Matt Pharr
14abed7519
Merge pull request #519 from gonsolo/unused2
Remove unused variable.
2025-10-23 11:54:47 -07:00
Matt Pharr
c70b8671a9
Merge pull request #520 from gonsolo/dim
Remove a warning about dim 0.
2025-10-23 11:53:27 -07:00
Gon Solo
82efbd535b Remove a warning about dim 0. 2025-10-23 11:48:14 +02:00
Gon Solo
18b7c2a2a4 Remove unused variable. 2025-10-23 11:32:00 +02:00
Gon Solo
7f217866a7 Suppress a deprecation warning.
The solution for the warning in string.cpp will only arrive in C++26.
2025-10-23 11:23:58 +02:00
Gon Solo
1b89ed472a Remove unused filterOptions. 2025-10-23 11:14:01 +02:00
Gon Solo
e1288833cb Remove Optix version.
Since CI is running on Optix 7 and 8, and I have PBRT compiled locally
with Optix 9, it doesn't make sense to call it OPTIX7 anymore.
2025-10-23 10:40:10 +02:00
Matt Pharr
970fee03b7 parallel_test.cpp: attempt to work around windows test failures 2025-10-22 13:51:38 -07:00
Matt Pharr
0d6d9573e9 Fix HashBuffer to include sizeof(T) in size passed to MurmurHash64A.
Updated callers in test code that weren't expecting this. (Callers in
existing code were expecting it but not getting it!)

Fixes #487.
2025-10-22 13:41:35 -07:00
Matt Pharr
85918d59e4 flip.cpp: add cstdint include to make gcc happy 2025-10-22 12:59:33 -07:00
Matt Pharr
35bb9b88c0
Merge pull request #513 from jflatt-gia/scale2x
Add Optix 2X scaler to imgtool
2025-10-22 12:35:02 -07:00
Matt Pharr
70f8b9ed92
Merge pull request #480 from johnnynunez/patch-1
Update ci-gpu.yml
2025-10-22 12:32:10 -07:00
Matt Pharr
689587986d
Merge pull request #515 from SPolton/fix-cuda-13
Fix CUDA 13.x Compatibility in PBRT-v4
2025-10-22 12:22:44 -07:00
Matt Pharr
49c38c2526
Merge pull request #502 from gonsolo/fix_gcc_15
Fix build with GCC 15.
2025-10-22 12:21:23 -07:00
Matt Pharr
d36160ebe5
Merge pull request #514 from Ka1serM/fix-cmake-build
Fix fatal CMake build error "Could NOT find ZLIB" from OpenEXR

Fixes #467, #503, and #493.
2025-10-22 12:19:58 -07:00
Matt Pharr
7d728002ce Update utf8proc version to hopefully fix build. 2025-10-22 12:02:52 -07:00
Matt Pharr
df937186ae More submodule version updates to make github's cmake happy 2025-10-22 11:57:58 -07:00
Matt Pharr
90c73ac71a Update to latest zlib released version 2025-10-22 11:41:43 -07:00