|
20 | 20 | #include "arcane/core/IVariable.h"
|
21 | 21 | #include "arcane/core/VariableRef.h"
|
22 | 22 | #include "arcane/core/internal/IDataInternal.h"
|
| 23 | +#include "arcane/core/datatype/DataAllocationInfo.h" |
| 24 | +#include "arcane/core/materials/MeshMaterialVariableRef.h" |
| 25 | +#include "arcane/core/materials/internal/IMeshMaterialVariableInternal.h" |
23 | 26 |
|
24 | 27 | /*---------------------------------------------------------------------------*/
|
25 | 28 | /*---------------------------------------------------------------------------*/
|
@@ -66,6 +69,36 @@ prefetchVariableAsync(VariableRef& var, RunQueue* queue_or_null)
|
66 | 69 | /*---------------------------------------------------------------------------*/
|
67 | 70 | /*---------------------------------------------------------------------------*/
|
68 | 71 |
|
| 72 | +void VariableUtils:: |
| 73 | +markVariableAsMostlyReadOnly(IVariable* var) |
| 74 | +{ |
| 75 | + DataAllocationInfo alloc_info(eMemoryLocationHint::HostAndDeviceMostlyRead); |
| 76 | + var->setAllocationInfo(alloc_info); |
| 77 | +} |
| 78 | + |
| 79 | +/*---------------------------------------------------------------------------*/ |
| 80 | +/*---------------------------------------------------------------------------*/ |
| 81 | + |
| 82 | +void VariableUtils:: |
| 83 | +markVariableAsMostlyReadOnly(VariableRef& var) |
| 84 | +{ |
| 85 | + return markVariableAsMostlyReadOnly(var.variable()); |
| 86 | +} |
| 87 | + |
| 88 | +/*---------------------------------------------------------------------------*/ |
| 89 | +/*---------------------------------------------------------------------------*/ |
| 90 | + |
| 91 | +void VariableUtils:: |
| 92 | +markVariableAsMostlyReadOnly(::Arcane::Materials::MeshMaterialVariableRef& var) |
| 93 | +{ |
| 94 | + auto vars = var.materialVariable()->_internalApi()->variableReferenceList(); |
| 95 | + for (VariableRef* v : vars) |
| 96 | + markVariableAsMostlyReadOnly(v->variable()); |
| 97 | +} |
| 98 | + |
| 99 | +/*---------------------------------------------------------------------------*/ |
| 100 | +/*---------------------------------------------------------------------------*/ |
| 101 | + |
69 | 102 | } // namespace Arcane
|
70 | 103 |
|
71 | 104 | /*---------------------------------------------------------------------------*/
|
|
0 commit comments