message: Added methods to get read/write images count inside arguments.
diff: @@ -102,6 +102,56 @@ struct GPUResources {
  }
  return names;
  }
  +
  + int GetReadImagesCount() const {
  + int counter = 0;
  + for (const auto& t : images2d) {
  + if (t.second.access_type == tflite::gpu::AccessType::READ) {
  + counter++;
  + }
  + }
  + for (const auto& t : image2d_arrays) {
  + if (t.second.access_type == tflite::gpu::AccessType::READ) {
  + counter++;
  + }
  + }
  + for (const auto& t : images3d) {
  + if (t.second.access_type == tflite::gpu::AccessType::READ) {
  + counter++;
  + }
  + }
  + for (const auto& t : image_buffers) {
  + if (t.second.access_type == tflite::gpu::AccessType::READ) {
  + counter++;
  + }
  + }
  + return counter;
  + }
  +
  + int GetWriteImagesCount() const {
  + int counter = 0;
  + for (const auto& t : images2d) {
  + if (t.second.access_type == tflite::gpu::AccessType::WRITE) {
  + counter++;
  + }
  + }
  + for (const auto& t : image2d_arrays) {
  + if (t.second.access_type == tflite::gpu::AccessType::WRITE) {
  + counter++;
  + }
  + }
  + for (const auto& t : images3d) {
  + if (t.second.access_type == tflite::gpu::AccessType::WRITE) {
  + counter++;
  + }
  + }
  + for (const auto& t : image_buffers) {
  + if (t.second.access_type == tflite::gpu::AccessType::WRITE) {
  + counter++;
  + }
  + }
  + return counter;
  + }
  };
  class GPUObjectDescriptor {
  @@ -117,8 +167,10 @@ class GPUObjectDescriptor {
  state_vars_[key] = value;
  }
  - virtual std::string PerformConstExpr(const std::string& const_expr) const {
  - return "";
  + virtual absl::Status PerformConstExpr(const std::string& const_expr,
  + std::string* result) const {
  + return absl::UnimplementedError(
  + "No implementation of perform const expression");
  }
  virtual absl::Status PerformSelector(
  @@ -126,8 +178,7 @@ class GPUObjectDescriptor {
  const std::vector<std::string>& args,
  const std::vector<std::string>& template_args,
  std::string* result) const {
  - *result = "";
  - return absl::OkStatus();
  + return absl::UnimplementedError("No implementation of perform selector");
  }
  virtual GPUResources GetGPUResources() const { return GPUResources(); }
  