> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_RAYTRACING_GEOMETRY_FLAGS (XBOX Series consoles)

> Specifies flags for raytracing geometry in a D3D12_RAYTRACING_GEOMETRY_DESC structure.

Specifies flags for raytracing geometry in a [D3D12\_RAYTRACING\_GEOMETRY\_DESC](/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public) structure.

## Syntax

```cpp theme={null}
typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS
{
    D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
    D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 1,
    D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 2
} D3D12_RAYTRACING_GEOMETRY_FLAGS
```

## Constants

| Constant                                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| D3D12\_RAYTRACING\_GEOMETRY\_FLAG\_NONE                              | No options specified.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| D3D12\_RAYTRACING\_GEOMETRY\_FLAG\_OPAQUE                            | When rays encounter this geometry, the geometry acts as if no any hit shader is present.  It is recommended that apps use this flag liberally, as it can enable important ray-processing optimizations.  Note that this behavior can be overridden on a per-instance basis with [D3D12\_RAYTRACING\_INSTANCE\_FLAGS](/reference/graphics/d3d12/enums/d3d12_raytracing_instance_flags_public) and on a per-ray basis using ray flags in **TraceRay**.                                                                                                                                                                                                                                                                       |
| D3D12\_RAYTRACING\_GEOMETRY\_FLAG\_NO\_DUPLICATE\_ANYHIT\_INVOCATION | By default, the system is free to trigger an any hit shader more than once for a given ray-primitive intersection. This flexibility helps improve the traversal efficiency of acceleration structures in certain cases.  For instance, if the acceleration structure is implemented internally with bounding volumes, the implementation may find it beneficial to store relatively long triangles in multiple bounding boxes rather than a larger single box. However, some application use cases require that intersections be reported to the any hit shader at most once. This flag enables that guarantee for the given geometry, potentially with some performance impact.  This flag applies to all geometry types. |

## Requirements

**Header:** d3d12\_xs.h\
**Library:** d3d12\_xs.lib\
**Supported Platforms**: XBOX Series consoles


## Related topics

- [D3D12_RAYTRACING_GEOMETRY_DESC (XBOX Series consoles)](/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public.md)
- [D3D12_RAYTRACING_INSTANCE_FLAGS (XBOX Series consoles)](/reference/graphics/d3d12/enums/d3d12_raytracing_instance_flags_public.md)
- [D3D12_RAYTRACING_GEOMETRY_TYPE (XBOX Series consoles)](/reference/graphics/d3d12/enums/d3d12_raytracing_geometry_type_public.md)
- [D3D12_RAYTRACING_GEOMETRY_AABBS_DESC (XBOX Series consoles)](/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_aabbs_desc_public.md)
- [D3D12_RAYTRACING_INSTANCE_DESC (XBOX Series consoles)](/reference/graphics/d3d12/structs/d3d12_raytracing_instance_desc_public.md)
