1 # Copyright (c) 2019 Collabora Ltd
2 # Copyright © 2019-2020 Valve Corporation.
4 # Permission is hereby granted, free of charge, to any person obtaining a
5 # copy of this software and associated documentation files (the "Software"),
6 # to deal in the Software without restriction, including without limitation
7 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 # and/or sell copies of the Software, and to permit persons to whom the
9 # Software is furnished to do so, subject to the following conditions:
11 # The above copyright notice and this permission notice shall be included
12 # in all copies or substantial portions of the Software.
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 # OTHER DEALINGS IN THE SOFTWARE.
22 # SPDX-License-Identifier: MIT
25 from pathlib
import Path
26 from enum
import Enum
, auto
28 class TraceType(Enum
):
31 APITRACE_DXGI
= auto()
33 GFXRECONSTRUCT
= auto()
36 _trace_type_info_map
= {
37 TraceType
.APITRACE
: ("apitrace", ".trace"),
38 TraceType
.APITRACE_DXGI
: ("apitrace-dxgi", ".trace-dxgi"),
39 TraceType
.RENDERDOC
: ("renderdoc", ".rdc"),
40 TraceType
.GFXRECONSTRUCT
: ("gfxreconstruct", ".gfxr"),
41 TraceType
.TESTTRACE
: ("testtrace", ".testtrace")
44 def all_trace_type_names():
46 for t
,(name
, ext
) in _trace_type_info_map
.items():
47 if t
!= TraceType
.UNKNOWN
:
51 def trace_type_from_name(tt_name
):
52 for t
,(name
, ext
) in _trace_type_info_map
.items():
56 return TraceType
.UNKNOWN
58 def trace_type_from_filename(trace_file
):
59 for t
,(name
, ext
) in _trace_type_info_map
.items():
60 if trace_file
.endswith(ext
):
63 return TraceType
.UNKNOWN