@@ -83,6 +83,16 @@ typedef struct TextureBinding {
83
83
} TextureBinding ;
84
84
85
85
typedef struct ShaderBinding {
86
+ LruNode node ;
87
+ bool initialized ;
88
+
89
+ bool cached ;
90
+ void * program ;
91
+ size_t program_size ;
92
+ GLenum program_format ;
93
+ ShaderState state ;
94
+ QemuThread * save_thread ;
95
+
86
96
GLuint gl_program ;
87
97
GLenum gl_primitive_mode ;
88
98
@@ -117,17 +127,6 @@ typedef struct ShaderBinding {
117
127
GLint material_alpha_loc ;
118
128
} ShaderBinding ;
119
129
120
- typedef struct ShaderLruNode {
121
- LruNode node ;
122
- bool cached ;
123
- void * program ;
124
- size_t program_size ;
125
- GLenum program_format ;
126
- ShaderState state ;
127
- ShaderBinding * binding ;
128
- QemuThread * save_thread ;
129
- } ShaderLruNode ;
130
-
131
130
typedef struct VertexKey {
132
131
size_t count ;
133
132
size_t stride ;
@@ -196,7 +195,7 @@ typedef struct PGRAPHGLState {
196
195
TextureLruNode * texture_cache_entries ;
197
196
198
197
Lru shader_cache ;
199
- ShaderLruNode * shader_cache_entries ;
198
+ ShaderBinding * shader_cache_entries ;
200
199
ShaderBinding * shader_binding ;
201
200
QemuMutex shader_cache_lock ;
202
201
QemuThread shader_disk_thread ;
@@ -279,8 +278,8 @@ SurfaceBinding *pgraph_gl_surface_get_within(NV2AState *d, hwaddr addr);
279
278
void pgraph_gl_surface_invalidate (NV2AState * d , SurfaceBinding * e );
280
279
void pgraph_gl_unbind_surface (NV2AState * d , bool color );
281
280
void pgraph_gl_upload_surface_data (NV2AState * d , SurfaceBinding * surface , bool force );
282
- void pgraph_gl_shader_cache_to_disk (ShaderLruNode * snode );
283
- bool pgraph_gl_shader_load_from_memory (ShaderLruNode * snode );
281
+ void pgraph_gl_shader_cache_to_disk (ShaderBinding * snode );
282
+ bool pgraph_gl_shader_load_from_memory (ShaderBinding * snode );
284
283
void pgraph_gl_shader_write_cache_reload_list (PGRAPHState * pg );
285
284
void pgraph_gl_set_surface_scale_factor (NV2AState * d , unsigned int scale );
286
285
unsigned int pgraph_gl_get_surface_scale_factor (NV2AState * d );
0 commit comments