@@ -7,33 +7,27 @@ import {Tensor} from '../../tensor';
7
7
import { ShapeUtil } from '../../util' ;
8
8
9
9
import { WebGLUint8Encode } from './ops/uint8-encode' ;
10
- import { ProgramManager } from './program-manager' ;
11
10
import { WebGLSessionHandler } from './session-handler' ;
12
11
import { Encoder } from './texture-data-encoder' ;
13
- import { TextureHelper } from './texture-helper' ;
14
12
import { WidthHeightPrefs } from './texture-layout-strategy' ;
15
13
import { TextureData , TextureLayout , WebGLOperator } from './types' ;
16
14
import { getPackedShape } from './utils' ;
17
15
18
16
export class WebGLInferenceHandler implements InferenceHandler {
19
- textureHelper : TextureHelper ;
20
- programManager : ProgramManager ;
21
17
private textureDataCache : Map < Tensor . Id , TextureData > ;
22
18
constructor ( public session : WebGLSessionHandler ) {
23
- this . textureHelper = session . textureHelper ;
24
- this . programManager = session . programManager ;
25
19
this . textureDataCache = new Map ( ) ;
26
20
}
27
21
28
22
run ( op : WebGLOperator , inputs : Tensor [ ] ) : Tensor [ ] {
29
- let artifact = this . programManager . getArtifact ( op ) ;
23
+ let artifact = this . session . programManager . getArtifact ( op ) ;
30
24
if ( ! artifact ) {
31
25
const programInfo = op . createProgramInfo ( this , inputs ) ;
32
- artifact = this . programManager . build ( programInfo ) ;
33
- this . programManager . setArtifact ( op , artifact ) ;
26
+ artifact = this . session . programManager . build ( programInfo ) ;
27
+ this . session . programManager . setArtifact ( op , artifact ) ;
34
28
}
35
29
const runData = op . createRunData ( this , artifact . programInfo , inputs ) ;
36
- this . programManager . run ( artifact , runData ) ;
30
+ this . session . programManager . run ( artifact , runData ) ;
37
31
return [ runData . outputTextureData . tensor ] ;
38
32
}
39
33
@@ -90,7 +84,7 @@ export class WebGLInferenceHandler implements InferenceHandler {
90
84
layout : TextureLayout , dataType : Tensor . DataType , data ?: Tensor . NumberType , tensor ?: Tensor ,
91
85
usage ?: Encoder . Usage ) : TextureData {
92
86
Logger . verbose ( 'InferenceHandler' , `Creating TextureData: layout:[${ JSON . stringify ( layout ) } ]` ) ;
93
- const texture = this . textureHelper . createTextureFromLayout ( dataType , layout , data , usage ) ;
87
+ const texture = this . session . textureManager . createTextureFromLayout ( dataType , layout , data , usage ) ;
94
88
return this . createTextureDataFromTexture ( layout , dataType , texture , tensor ) ;
95
89
}
96
90
@@ -175,18 +169,17 @@ export class WebGLInferenceHandler implements InferenceHandler {
175
169
}
176
170
177
171
dispose ( ) : void {
178
- this . textureHelper . clearActiveTextures ( ) ;
179
- this . textureDataCache . forEach ( td => this . textureHelper . releaseTexture ( td ) ) ;
172
+ this . session . textureManager . clearActiveTextures ( ) ;
173
+ this . textureDataCache . forEach ( td => this . session . textureManager . releaseTexture ( td ) ) ;
180
174
this . textureDataCache = new Map ( ) ;
181
175
}
182
176
183
177
readTexture ( textureData : TextureData ) : Tensor . NumberType {
184
178
if ( ! this . session . backend . glContext . isFloat32DownloadSupported ) {
185
179
const op = new WebGLUint8Encode ( ) ;
186
180
const uint8TD = op . runInternal ( this , textureData ) ;
187
- return this . textureHelper . readUint8TextureAsFloat ( uint8TD ) ;
181
+ return this . session . textureManager . readUint8TextureAsFloat ( uint8TD ) ;
188
182
}
189
- const values = this . textureHelper . readTexture ( textureData , textureData . tensor . type , textureData . channels ) ;
190
- return values ;
183
+ return this . session . textureManager . readTexture ( textureData , textureData . tensor . type , textureData . channels ) ;
191
184
}
192
185
}
0 commit comments