| Index: gpu/command_buffer/service/texture_manager.h
|
| diff --git a/gpu/command_buffer/service/texture_manager.h b/gpu/command_buffer/service/texture_manager.h
|
| index e97feb327f1c5a37b6edc98fd1d4a39c21885657..595f0354486f282593e81812d78edef395125891 100644
|
| --- a/gpu/command_buffer/service/texture_manager.h
|
| +++ b/gpu/command_buffer/service/texture_manager.h
|
| @@ -14,6 +14,7 @@
|
| #include "base/containers/hash_tables.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "gpu/command_buffer/service/async_pixel_transfer_delegate.h"
|
| +#include "gpu/command_buffer/service/feature_info.h"
|
| #include "gpu/command_buffer/service/gl_utils.h"
|
| #include "gpu/command_buffer/service/memory_tracking.h"
|
| #include "gpu/gpu_export.h"
|
| @@ -532,10 +533,13 @@ class GPU_EXPORT TextureRef : public base::RefCounted<TextureRef> {
|
| struct DecoderTextureState {
|
| // total_texture_upload_time automatically initialized to 0 in default
|
| // constructor.
|
| - explicit DecoderTextureState(bool texsubimage_faster_than_teximage)
|
| + explicit DecoderTextureState(const FeatureInfo::Workarounds& workarounds)
|
| : tex_image_failed(false),
|
| texture_upload_count(0),
|
| - texsubimage_faster_than_teximage(texsubimage_faster_than_teximage) {}
|
| + texsubimage_faster_than_teximage(
|
| + workarounds.texsubimage_faster_than_teximage),
|
| + force_cube_map_positive_x_allocation(
|
| + workarounds.force_cube_map_positive_x_allocation) {}
|
|
|
| // This indicates all the following texSubImage*D calls that are part of the
|
| // failed texImage*D call should be ignored. The client calls have a lock
|
| @@ -548,6 +552,7 @@ struct DecoderTextureState {
|
| base::TimeDelta total_texture_upload_time;
|
|
|
| bool texsubimage_faster_than_teximage;
|
| + bool force_cube_map_positive_x_allocation;
|
| };
|
|
|
| // This class keeps track of the textures and their sizes so we can do NPOT and
|
| @@ -888,6 +893,14 @@ class GPU_EXPORT TextureManager : public base::trace_event::MemoryDumpProvider {
|
| TextureRef* texture_ref,
|
| const DoTexImageArguments& args);
|
|
|
| + void DoTexImage2DCubeMapPositiveXIfNeeded(
|
| + DecoderTextureState* texture_state,
|
| + ErrorState* error_state,
|
| + DecoderFramebufferState* framebuffer_state,
|
| + const char* function_name,
|
| + TextureRef* texture_ref,
|
| + const DoTexImageArguments& args);
|
| +
|
| void StartTracking(TextureRef* texture);
|
| void StopTracking(TextureRef* texture);
|
|
|
|
|