| Index: gpu/command_buffer/service/program_manager.h
|
| diff --git a/gpu/command_buffer/service/program_manager.h b/gpu/command_buffer/service/program_manager.h
|
| index a3fd9f2e6e48534487f7cea6d7ba32f763d6cd0c..36bc94e84d1e7f4ce0f7dcd4f9cc6339aeb2471c 100644
|
| --- a/gpu/command_buffer/service/program_manager.h
|
| +++ b/gpu/command_buffer/service/program_manager.h
|
| @@ -397,24 +397,18 @@
|
| // See member declaration for details.
|
| // The data are only valid after a successful link.
|
| uint32_t fragment_output_type_mask() const {
|
| - return fragment_output_type_mask_;
|
| + return fragment_output_type_mask_;
|
| }
|
| uint32_t fragment_output_written_mask() const {
|
| - return fragment_output_written_mask_;
|
| + return fragment_output_written_mask_;
|
| }
|
|
|
| // The data are only valid after a successful link.
|
| - // Return 16 attributes' base types, in which the attribute
|
| - // specified by argument 'loc' located.
|
| - uint32_t vertex_input_base_type_mask(GLuint loc) const {
|
| - DCHECK(loc < max_vertex_attribs_);
|
| - return vertex_input_base_type_mask_[loc / 16];
|
| - }
|
| - // Return 16 attributes' type written masks, in which the
|
| - // attribute specified by argument 'loc' located.
|
| - uint32_t vertex_input_type_written_mask(GLuint loc) const {
|
| - DCHECK(loc < max_vertex_attribs_);
|
| - return vertex_input_type_written_mask_[loc / 16];
|
| + const std::vector<uint32_t>& vertex_input_base_type_mask() const {
|
| + return vertex_input_base_type_mask_;
|
| + }
|
| + const std::vector<uint32_t>& vertex_input_active_mask() const {
|
| + return vertex_input_active_mask_;
|
| }
|
|
|
| // Update uniform block binding after a successful glUniformBlockBinding().
|
| @@ -504,6 +498,8 @@
|
|
|
| const FeatureInfo& feature_info() const;
|
|
|
| + void ClearVertexInputMasks();
|
| +
|
| ProgramManager* manager_;
|
|
|
| int use_count_;
|
| @@ -581,14 +577,13 @@
|
| // by an output variable, 0x00 if not.
|
| uint32_t fragment_output_written_mask_;
|
|
|
| - uint32_t max_vertex_attribs_;
|
| // Vertex input attrib base types: FLOAT, INT, or UINT.
|
| // Each base type is encoded into 2 bits, the lowest 2 bits for location 0,
|
| - // the highest 2 bits for location (max_vertex_attribs_ - 1).
|
| + // the highest 2 bits for location (max_vertex_attribs - 1).
|
| std::vector<uint32_t> vertex_input_base_type_mask_;
|
| // Same layout as above, 2 bits per location, 0x03 if a location is set
|
| // by vertexAttrib API, 0x00 if not.
|
| - std::vector<uint32_t> vertex_input_type_written_mask_;
|
| + std::vector<uint32_t> vertex_input_active_mask_;
|
| };
|
|
|
| // Tracks the Programs.
|
|
|