warp-optix third-party notices
=============================

Licenses apply to their respective components. The Apache-2.0 license for
Warp integration does not relicense SDK components or extracted BSD sources.

OptiX
-----
NVIDIA OptiX SDK 9.1.0: https://github.com/NVIDIA/optix-dev/tree/v9.1.0
Copyright NVIDIA Corporation. See OptiX_LICENSE.txt for the SDK terms,
identified in package metadata as LicenseRef-NVIDIA-OptiX.
Unmodified headers are fetched for building and bundled under warp_optix/include
in all wheels for runtime kernel compilation.
Original header notices are preserved, with the upstream SDK license included
alongside the headers. The headers remain under NVIDIA SDK terms, not Apache-2.0.
Redistribution of these unmodified headers in the public warp-optix pip package
has been approved.

pybind11
--------
https://github.com/pybind/pybind11
Build requirement: >=3.0,<4. License: BSD-3-Clause.
Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.
Header code is incorporated into the compiled extension. See the complete
upstream license and additional notices in licenses/pybind11-LICENSE.txt
(copied from v3.0.1; verify against the resolved version for each release).

otk-pyoptix / PyOptiX
--------------------
https://github.com/NVIDIA/otk-pyoptix
Runtime dependency: pyoptix==9.1.0. License: BSD-3-Clause.
Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
warp-optix depends on the separately installed PyOptiX package for standard
bindings. src/extension.cpp contains supplemental bindings derived from
otk-pyoptix; src/pyoptix_compat.h contains four upstream wrapper definitions
for ABI access. These files and the otk-pyoptix-derived CMakeLists.txt are
licensed under BSD-3-Clause. Full terms are in LICENSE.txt.

vk_denoise_dlssrr adaptation
---------------------------
https://github.com/nvpro-samples/vk_denoise_dlssrr
Copyright (c) 2024-2025, NVIDIA CORPORATION. All rights reserved.
License: Apache-2.0; full terms are in LICENSE.md.
The Warp/OptiX path tracer adapts the sample's rendering and render-guide
approach. Local modifications translate shader operations to Python/Warp,
replace Vulkan execution with OptiX/CUDA, and extend scene/material handling.
The adaptation used AI assistance.

File-level source mapping under warp_optix/warp_optix/pathtracing:
  pathtracing_warp_kernels.py: dlss_rr/shaders/primary.rgen, primary.rchit,
    primary.rmiss, secondary.rahit, secondary.rchit, secondary.rmiss, and
    get_hit.glsl (path tracing, hit processing, and render guides);
    intermediate optix_programs.h (instance transforms) and primary.rgen
    motion vectors.
  tonemap.py: intermediate debug_visualize.h (debug buffer visualization).
Original upstream notice text is in licenses/vk_denoise_dlssrr-NOTICE.txt.
Sample comparison reference: f8113a84fa952278bb1286e7899f81b7afe8f41e.
Intermediate CUDA/OptiX sources were located in Warp development history at
commit 410d8d71b634e731533a807cb1757066ef2bebe6, under
warp/examples/core/pyoptix/pathtracing/cpp. The Python adaptation was imported
into this repository at aa1c11f0ea6cab9b2a34c428bbd7a1bebc4ad21d.
These are comparison and import references; the original upstream revision
used to start the port was not recorded.

nvpro_core adaptations used by the path tracer
---------------------------------------------
https://github.com/nvpro-samples/nvpro_core
License: Apache-2.0; full terms are in LICENSE.md.
Original file-specific NVIDIA copyright and license notices are reproduced
in licenses/nvpro_core-NOTICE.txt and identified in adapted source headers.
Comparison reference: bc19d6ac3ef62938d0ea0e099735878457ce1b6e.
Source paths below are relative to nvpro_core; local files are under
warp_optix/warp_optix/pathtracing:
  func_common.py: nvvkhl/shaders/func.h (vector, basis, and sampling helpers).
  environment_map.py: nvvkhl/hdr_env.cpp (environment alias-table construction).
  materials.py: nvvkhl/shaders/dh_scn_desc.h (glTF material/texture structures).
  pathtracing_warp_kernels.py: nvvkhl/shaders/dh_sky.h; bsdf_functions.h;
    bsdf_structs.h; ggx.h; pbr_mat_eval.h; pbr_mat_struct.h; random.h;
    ray_util.h; hdr_env_sampling.h; dh_scn_desc.h; vertex_accessor.h; func.h.
    These provide sky, BSDF, material, random sampling, and geometry helpers,
    translated through the intermediate sky_common.h, pbr_common.h,
    mat_eval_common.h, scene_common.h, and func_common.h.
  tonemap.py: nvvkhl/shaders/dh_tonemap.h (color grading and sRGB conversion).
    Highlight compression uses RGB / (1 + max(RGB)), followed by sRGB encoding.
Modifications translate C++/GLSL operations to Python/Warp and adapt buffer
layouts, GPU access, and scene/material handling.
