• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2021 The Dawn Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef DAWNNATIVE_LIMITS_H_
16 #define DAWNNATIVE_LIMITS_H_
17 
18 #include "dawn_native/Error.h"
19 #include "dawn_native/dawn_platform.h"
20 
21 namespace dawn_native {
22 
23     struct CombinedLimits {
24         Limits v1;
25     };
26 
27     // Populate |limits| with the default limits.
28     void GetDefaultLimits(Limits* limits);
29 
30     // Returns a copy of |limits| where all undefined values are replaced
31     // with their defaults. Also clamps to the defaults if the provided limits
32     // are worse.
33     Limits ReifyDefaultLimits(const Limits& limits);
34 
35     // Validate that |requiredLimits| are no better than |supportedLimits|.
36     MaybeError ValidateLimits(const Limits& supportedLimits, const Limits& requiredLimits);
37 
38     // Returns a copy of |limits| where limit tiers are applied.
39     Limits ApplyLimitTiers(Limits limits);
40 
41 }  // namespace dawn_native
42 
43 #endif  // DAWNNATIVE_LIMITS_H_
44