Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(574)

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h

Issue 2264253003: Command buffers: ensure we only read immediate data once (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file is auto-generated from 5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py 6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
(...skipping 1548 matching lines...) Expand 10 before | Expand all | Expand 10 after
1559 GLsizei n = static_cast<GLsizei>(c.n); 1559 GLsizei n = static_cast<GLsizei>(c.n);
1560 uint32_t data_size; 1560 uint32_t data_size;
1561 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1561 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1562 return error::kOutOfBounds; 1562 return error::kOutOfBounds;
1563 } 1563 }
1564 GLuint* buffers = 1564 GLuint* buffers =
1565 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1565 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1566 if (buffers == NULL) { 1566 if (buffers == NULL) {
1567 return error::kOutOfBounds; 1567 return error::kOutOfBounds;
1568 } 1568 }
1569 if (!CheckUniqueAndNonNullIds(n, buffers) || !GenBuffersHelper(n, buffers)) { 1569 auto buffers_copy = base::MakeUnique<GLuint[]>(n);
1570 GLuint* buffers_safe = buffers_copy.get();
1571 std::copy(buffers, buffers + n, buffers_safe);
1572 if (!CheckUniqueAndNonNullIds(n, buffers_safe) ||
1573 !GenBuffersHelper(n, buffers_safe)) {
1570 return error::kInvalidArguments; 1574 return error::kInvalidArguments;
1571 } 1575 }
1572 return error::kNoError; 1576 return error::kNoError;
1573 } 1577 }
1574 1578
1575 error::Error GLES2DecoderImpl::HandleGenerateMipmap( 1579 error::Error GLES2DecoderImpl::HandleGenerateMipmap(
1576 uint32_t immediate_data_size, 1580 uint32_t immediate_data_size,
1577 const void* cmd_data) { 1581 const void* cmd_data) {
1578 const gles2::cmds::GenerateMipmap& c = 1582 const gles2::cmds::GenerateMipmap& c =
1579 *static_cast<const gles2::cmds::GenerateMipmap*>(cmd_data); 1583 *static_cast<const gles2::cmds::GenerateMipmap*>(cmd_data);
(...skipping 16 matching lines...) Expand all
1596 GLsizei n = static_cast<GLsizei>(c.n); 1600 GLsizei n = static_cast<GLsizei>(c.n);
1597 uint32_t data_size; 1601 uint32_t data_size;
1598 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1602 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1599 return error::kOutOfBounds; 1603 return error::kOutOfBounds;
1600 } 1604 }
1601 GLuint* framebuffers = 1605 GLuint* framebuffers =
1602 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1606 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1603 if (framebuffers == NULL) { 1607 if (framebuffers == NULL) {
1604 return error::kOutOfBounds; 1608 return error::kOutOfBounds;
1605 } 1609 }
1606 if (!CheckUniqueAndNonNullIds(n, framebuffers) || 1610 auto framebuffers_copy = base::MakeUnique<GLuint[]>(n);
1607 !GenFramebuffersHelper(n, framebuffers)) { 1611 GLuint* framebuffers_safe = framebuffers_copy.get();
1612 std::copy(framebuffers, framebuffers + n, framebuffers_safe);
1613 if (!CheckUniqueAndNonNullIds(n, framebuffers_safe) ||
1614 !GenFramebuffersHelper(n, framebuffers_safe)) {
1608 return error::kInvalidArguments; 1615 return error::kInvalidArguments;
1609 } 1616 }
1610 return error::kNoError; 1617 return error::kNoError;
1611 } 1618 }
1612 1619
1613 error::Error GLES2DecoderImpl::HandleGenRenderbuffersImmediate( 1620 error::Error GLES2DecoderImpl::HandleGenRenderbuffersImmediate(
1614 uint32_t immediate_data_size, 1621 uint32_t immediate_data_size,
1615 const void* cmd_data) { 1622 const void* cmd_data) {
1616 const gles2::cmds::GenRenderbuffersImmediate& c = 1623 const gles2::cmds::GenRenderbuffersImmediate& c =
1617 *static_cast<const gles2::cmds::GenRenderbuffersImmediate*>(cmd_data); 1624 *static_cast<const gles2::cmds::GenRenderbuffersImmediate*>(cmd_data);
1618 (void)c; 1625 (void)c;
1619 GLsizei n = static_cast<GLsizei>(c.n); 1626 GLsizei n = static_cast<GLsizei>(c.n);
1620 uint32_t data_size; 1627 uint32_t data_size;
1621 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1628 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1622 return error::kOutOfBounds; 1629 return error::kOutOfBounds;
1623 } 1630 }
1624 GLuint* renderbuffers = 1631 GLuint* renderbuffers =
1625 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1632 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1626 if (renderbuffers == NULL) { 1633 if (renderbuffers == NULL) {
1627 return error::kOutOfBounds; 1634 return error::kOutOfBounds;
1628 } 1635 }
1629 if (!CheckUniqueAndNonNullIds(n, renderbuffers) || 1636 auto renderbuffers_copy = base::MakeUnique<GLuint[]>(n);
1630 !GenRenderbuffersHelper(n, renderbuffers)) { 1637 GLuint* renderbuffers_safe = renderbuffers_copy.get();
1638 std::copy(renderbuffers, renderbuffers + n, renderbuffers_safe);
1639 if (!CheckUniqueAndNonNullIds(n, renderbuffers_safe) ||
1640 !GenRenderbuffersHelper(n, renderbuffers_safe)) {
1631 return error::kInvalidArguments; 1641 return error::kInvalidArguments;
1632 } 1642 }
1633 return error::kNoError; 1643 return error::kNoError;
1634 } 1644 }
1635 1645
1636 error::Error GLES2DecoderImpl::HandleGenSamplersImmediate( 1646 error::Error GLES2DecoderImpl::HandleGenSamplersImmediate(
1637 uint32_t immediate_data_size, 1647 uint32_t immediate_data_size,
1638 const void* cmd_data) { 1648 const void* cmd_data) {
1639 if (!unsafe_es3_apis_enabled()) 1649 if (!unsafe_es3_apis_enabled())
1640 return error::kUnknownCommand; 1650 return error::kUnknownCommand;
1641 const gles2::cmds::GenSamplersImmediate& c = 1651 const gles2::cmds::GenSamplersImmediate& c =
1642 *static_cast<const gles2::cmds::GenSamplersImmediate*>(cmd_data); 1652 *static_cast<const gles2::cmds::GenSamplersImmediate*>(cmd_data);
1643 (void)c; 1653 (void)c;
1644 GLsizei n = static_cast<GLsizei>(c.n); 1654 GLsizei n = static_cast<GLsizei>(c.n);
1645 uint32_t data_size; 1655 uint32_t data_size;
1646 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1656 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1647 return error::kOutOfBounds; 1657 return error::kOutOfBounds;
1648 } 1658 }
1649 GLuint* samplers = 1659 GLuint* samplers =
1650 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1660 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1651 if (samplers == NULL) { 1661 if (samplers == NULL) {
1652 return error::kOutOfBounds; 1662 return error::kOutOfBounds;
1653 } 1663 }
1654 if (!CheckUniqueAndNonNullIds(n, samplers) || 1664 auto samplers_copy = base::MakeUnique<GLuint[]>(n);
1655 !GenSamplersHelper(n, samplers)) { 1665 GLuint* samplers_safe = samplers_copy.get();
1666 std::copy(samplers, samplers + n, samplers_safe);
1667 if (!CheckUniqueAndNonNullIds(n, samplers_safe) ||
1668 !GenSamplersHelper(n, samplers_safe)) {
1656 return error::kInvalidArguments; 1669 return error::kInvalidArguments;
1657 } 1670 }
1658 return error::kNoError; 1671 return error::kNoError;
1659 } 1672 }
1660 1673
1661 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( 1674 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate(
1662 uint32_t immediate_data_size, 1675 uint32_t immediate_data_size,
1663 const void* cmd_data) { 1676 const void* cmd_data) {
1664 const gles2::cmds::GenTexturesImmediate& c = 1677 const gles2::cmds::GenTexturesImmediate& c =
1665 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data); 1678 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data);
1666 (void)c; 1679 (void)c;
1667 GLsizei n = static_cast<GLsizei>(c.n); 1680 GLsizei n = static_cast<GLsizei>(c.n);
1668 uint32_t data_size; 1681 uint32_t data_size;
1669 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1682 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1670 return error::kOutOfBounds; 1683 return error::kOutOfBounds;
1671 } 1684 }
1672 GLuint* textures = 1685 GLuint* textures =
1673 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1686 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1674 if (textures == NULL) { 1687 if (textures == NULL) {
1675 return error::kOutOfBounds; 1688 return error::kOutOfBounds;
1676 } 1689 }
1677 if (!CheckUniqueAndNonNullIds(n, textures) || 1690 auto textures_copy = base::MakeUnique<GLuint[]>(n);
1678 !GenTexturesHelper(n, textures)) { 1691 GLuint* textures_safe = textures_copy.get();
1692 std::copy(textures, textures + n, textures_safe);
1693 if (!CheckUniqueAndNonNullIds(n, textures_safe) ||
1694 !GenTexturesHelper(n, textures_safe)) {
1679 return error::kInvalidArguments; 1695 return error::kInvalidArguments;
1680 } 1696 }
1681 return error::kNoError; 1697 return error::kNoError;
1682 } 1698 }
1683 1699
1684 error::Error GLES2DecoderImpl::HandleGenTransformFeedbacksImmediate( 1700 error::Error GLES2DecoderImpl::HandleGenTransformFeedbacksImmediate(
1685 uint32_t immediate_data_size, 1701 uint32_t immediate_data_size,
1686 const void* cmd_data) { 1702 const void* cmd_data) {
1687 if (!unsafe_es3_apis_enabled()) 1703 if (!unsafe_es3_apis_enabled())
1688 return error::kUnknownCommand; 1704 return error::kUnknownCommand;
1689 const gles2::cmds::GenTransformFeedbacksImmediate& c = 1705 const gles2::cmds::GenTransformFeedbacksImmediate& c =
1690 *static_cast<const gles2::cmds::GenTransformFeedbacksImmediate*>( 1706 *static_cast<const gles2::cmds::GenTransformFeedbacksImmediate*>(
1691 cmd_data); 1707 cmd_data);
1692 (void)c; 1708 (void)c;
1693 GLsizei n = static_cast<GLsizei>(c.n); 1709 GLsizei n = static_cast<GLsizei>(c.n);
1694 uint32_t data_size; 1710 uint32_t data_size;
1695 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1711 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1696 return error::kOutOfBounds; 1712 return error::kOutOfBounds;
1697 } 1713 }
1698 GLuint* ids = GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1714 GLuint* ids = GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1699 if (ids == NULL) { 1715 if (ids == NULL) {
1700 return error::kOutOfBounds; 1716 return error::kOutOfBounds;
1701 } 1717 }
1702 if (!CheckUniqueAndNonNullIds(n, ids) || 1718 auto ids_copy = base::MakeUnique<GLuint[]>(n);
1703 !GenTransformFeedbacksHelper(n, ids)) { 1719 GLuint* ids_safe = ids_copy.get();
1720 std::copy(ids, ids + n, ids_safe);
1721 if (!CheckUniqueAndNonNullIds(n, ids_safe) ||
1722 !GenTransformFeedbacksHelper(n, ids_safe)) {
1704 return error::kInvalidArguments; 1723 return error::kInvalidArguments;
1705 } 1724 }
1706 return error::kNoError; 1725 return error::kNoError;
1707 } 1726 }
1708 1727
1709 error::Error GLES2DecoderImpl::HandleGetBooleanv(uint32_t immediate_data_size, 1728 error::Error GLES2DecoderImpl::HandleGetBooleanv(uint32_t immediate_data_size,
1710 const void* cmd_data) { 1729 const void* cmd_data) {
1711 const gles2::cmds::GetBooleanv& c = 1730 const gles2::cmds::GetBooleanv& c =
1712 *static_cast<const gles2::cmds::GetBooleanv*>(cmd_data); 1731 *static_cast<const gles2::cmds::GetBooleanv*>(cmd_data);
1713 (void)c; 1732 (void)c;
(...skipping 3048 matching lines...) Expand 10 before | Expand all | Expand 10 after
4762 GLsizei n = static_cast<GLsizei>(c.n); 4781 GLsizei n = static_cast<GLsizei>(c.n);
4763 uint32_t data_size; 4782 uint32_t data_size;
4764 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 4783 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
4765 return error::kOutOfBounds; 4784 return error::kOutOfBounds;
4766 } 4785 }
4767 GLuint* queries = 4786 GLuint* queries =
4768 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 4787 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
4769 if (queries == NULL) { 4788 if (queries == NULL) {
4770 return error::kOutOfBounds; 4789 return error::kOutOfBounds;
4771 } 4790 }
4772 if (!CheckUniqueAndNonNullIds(n, queries) || 4791 auto queries_copy = base::MakeUnique<GLuint[]>(n);
4773 !GenQueriesEXTHelper(n, queries)) { 4792 GLuint* queries_safe = queries_copy.get();
4793 std::copy(queries, queries + n, queries_safe);
4794 if (!CheckUniqueAndNonNullIds(n, queries_safe) ||
4795 !GenQueriesEXTHelper(n, queries_safe)) {
4774 return error::kInvalidArguments; 4796 return error::kInvalidArguments;
4775 } 4797 }
4776 return error::kNoError; 4798 return error::kNoError;
4777 } 4799 }
4778 4800
4779 error::Error GLES2DecoderImpl::HandleDeleteQueriesEXTImmediate( 4801 error::Error GLES2DecoderImpl::HandleDeleteQueriesEXTImmediate(
4780 uint32_t immediate_data_size, 4802 uint32_t immediate_data_size,
4781 const void* cmd_data) { 4803 const void* cmd_data) {
4782 const gles2::cmds::DeleteQueriesEXTImmediate& c = 4804 const gles2::cmds::DeleteQueriesEXTImmediate& c =
4783 *static_cast<const gles2::cmds::DeleteQueriesEXTImmediate*>(cmd_data); 4805 *static_cast<const gles2::cmds::DeleteQueriesEXTImmediate*>(cmd_data);
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
4885 GLsizei n = static_cast<GLsizei>(c.n); 4907 GLsizei n = static_cast<GLsizei>(c.n);
4886 uint32_t data_size; 4908 uint32_t data_size;
4887 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 4909 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
4888 return error::kOutOfBounds; 4910 return error::kOutOfBounds;
4889 } 4911 }
4890 GLuint* arrays = 4912 GLuint* arrays =
4891 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 4913 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
4892 if (arrays == NULL) { 4914 if (arrays == NULL) {
4893 return error::kOutOfBounds; 4915 return error::kOutOfBounds;
4894 } 4916 }
4895 if (!CheckUniqueAndNonNullIds(n, arrays) || 4917 auto arrays_copy = base::MakeUnique<GLuint[]>(n);
4896 !GenVertexArraysOESHelper(n, arrays)) { 4918 GLuint* arrays_safe = arrays_copy.get();
4919 std::copy(arrays, arrays + n, arrays_safe);
4920 if (!CheckUniqueAndNonNullIds(n, arrays_safe) ||
4921 !GenVertexArraysOESHelper(n, arrays_safe)) {
4897 return error::kInvalidArguments; 4922 return error::kInvalidArguments;
4898 } 4923 }
4899 return error::kNoError; 4924 return error::kNoError;
4900 } 4925 }
4901 4926
4902 error::Error GLES2DecoderImpl::HandleDeleteVertexArraysOESImmediate( 4927 error::Error GLES2DecoderImpl::HandleDeleteVertexArraysOESImmediate(
4903 uint32_t immediate_data_size, 4928 uint32_t immediate_data_size,
4904 const void* cmd_data) { 4929 const void* cmd_data) {
4905 const gles2::cmds::DeleteVertexArraysOESImmediate& c = 4930 const gles2::cmds::DeleteVertexArraysOESImmediate& c =
4906 *static_cast<const gles2::cmds::DeleteVertexArraysOESImmediate*>( 4931 *static_cast<const gles2::cmds::DeleteVertexArraysOESImmediate*>(
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after
5653 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled; 5678 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled;
5654 return true; 5679 return true;
5655 } 5680 }
5656 return false; 5681 return false;
5657 default: 5682 default:
5658 NOTREACHED(); 5683 NOTREACHED();
5659 return false; 5684 return false;
5660 } 5685 }
5661 } 5686 }
5662 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ 5687 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698