1#ifndef TZ_GPU_HARDWARE_HPP 
    2#define TZ_GPU_HARDWARE_HPP 
    3#include "tz/core/handle.hpp" 
    4#include "tz/core/error.hpp" 
   91        bool operator==(
const hardware& rhs)
 const 
   93            return this->internals.i0 == rhs.internals.i0;
 
   96        bool operator!=(
const hardware& rhs)
 const 
   98            return this->internals.i0 != rhs.internals.i0;
 
 
  146    bool hardware_in_use();
 
Represents a generic opaque handle.
Definition handle.hpp:32
 
error_code
Error codes for Topaz.
Definition error.hpp:14
 
hardware get_used_hardware()
Retrieve the hardware that's currently being used.
 
error_code iterate_hardware(std::span< hardware > hardwares, std::size_t *hardware_count=nullptr)
Retrieve information about all detected rendering hardware currently available on the machine.
 
hardware_feature_coverage
Describes to what extent the rendering hardware supports all the features that Topaz requires.
Definition hardware.hpp:54
 
hardware_type
Describes a specific type of rendering hardware.
Definition hardware.hpp:22
 
hardware_capabilities
Describes what kind of GPU operations a rendering hardware can carry out when used.
Definition hardware.hpp:38
 
hardware find_best_hardware()
Retrieve the "best" hardware hardware on your machine.
 
error_code use_hardware(hardware hw)
Select a piece of hardware to use for future graphical operations.
 
@ insufficient
The hardware does not support all features, and as such could crash.
Definition hardware.hpp:58
 
@ poor
The hardware does not come close to supporting all required features, and as such should not be attem...
Definition hardware.hpp:60
 
@ ideal
The hardware supports everything Topaz needs to do to support all GPU Library features.
Definition hardware.hpp:56
 
@ gpu
A discrete GPU, the most ideal hardware for graphics/compute. Typically seen on desktop PCs.
Definition hardware.hpp:24
 
@ integrated_gpu
An integrated GPU, typically seen on laptops.
Definition hardware.hpp:26
 
@ unknown
Your graphics driver failed to identify the hardware, or Topaz does not support whatever it is....
Definition hardware.hpp:30
 
@ cpu
A CPU. One should expect subpar performance, but there may be reasons to use a CPU.
Definition hardware.hpp:28
 
@ graphics_only
Graphics only. Attempting to carry out compute work on this hardware will fail.
Definition hardware.hpp:42
 
@ compute_only
Compute only. Attempting to carry out graphics work (rasterisation) on this hardware will fail.
Definition hardware.hpp:44
 
@ graphics_compute
Both graphics and compute. These are always preferred.
Definition hardware.hpp:40
 
@ neither
The hardware is useless for Topaz. You should not attempt to create a hardware using this hardware.
Definition hardware.hpp:46
 
Contains some basic information about a particular piece of hardware on the machine that the driver t...
Definition hardware.hpp:73
 
std::string name
User-facing name of the hardware. In most cases this should be the name of your graphics card....
Definition hardware.hpp:75
 
hardware_capabilities caps
Describes which sort of GPU operations this hardware is capable of doing.
Definition hardware.hpp:83
 
hardware_type type
Describes which type of hardware this is (e.g a discrete GPU, or a CPU).
Definition hardware.hpp:79
 
hardware_feature_coverage features
Describes whether this hardware is suited to Topaz rendering based upon the GPU features it supports.
Definition hardware.hpp:81
 
std::uint64_t vram_size_mib
Estimated size of the biggest heap, in MiB. If the hardware is not a discrete GPU,...
Definition hardware.hpp:77