STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Public Attributes | Private Attributes | List of all members
Concurrency::details::_DPC_call_handle Struct Reference

#include <amprt.h>

Public Member Functions

 _DPC_call_handle (const accelerator_view &_Accelerator_view)
 
 ~_DPC_call_handle ()
 
bool _Is_buffer_aliased (_In_ void *const _Buffer_ptr) const
 
bool _Is_buffer_unaccessed (size_t const _Buffer_idx) const
 
void _Set_buffer_unaccessed (size_t _Buffer_idx)
 
const int_Get_redirect_indices () const
 
void _Check_buffer_aliasing ()
 
void _Update_buffer_rw_property ()
 
void _Setup_aliasing_redirection_indices ()
 
void _Select_accelerator_view ()
 
void _Verify_buffers_against_accelerator_view ()
 

Public Attributes

_Accelerator_view_impl * _M_rv
 
bool _M_is_explicit_target_acclview
 
_Device_resource_info_M_device_resource_info
 
size_t _M_num_resources
 
size_t _M_num_writable_buffers
 
size_t _M_num_samplers
 
_Device_const_buffer_info_M_const_buffer_info
 
size_t _M_num_const_buffers
 
bool _M_RW_aliasing
 
_DPC_shader_blob * _M_shader_blob
 
int _M_is_flat_model
 
unsigned int _M_compute_rank
 
unsigned int_M_grid_extents
 
unsigned int _M_groupCountX
 
unsigned int _M_groupCountY
 
unsigned int _M_groupCountZ
 
unsigned int _M_groupExtentX
 
unsigned int _M_groupExtentY
 
unsigned int _M_groupExtentZ
 

Private Attributes

std::unique_ptr< std::unordered_set< void * > > _M_aliased_buffer_set
 
std::unique_ptr< std::vector< bool > > _M_is_device_buffer_unaccessed
 
std::unique_ptr< std::vector< int > > _M_Redirect_indices
 

Constructor & Destructor Documentation

Concurrency::details::_DPC_call_handle::_DPC_call_handle ( const accelerator_view _Accelerator_view)
inline
3551  {
3552  if (!_Accelerator_view.is_auto_selection) {
3553  _M_rv = _Get_accelerator_view_impl_ptr(_Accelerator_view);
3554  }
3555  else {
3556  _M_rv = NULL;
3557  }
3558 
3560  if (_M_rv != NULL) {
3562  }
3563 
3565  _M_num_resources = 0;
3567  _M_num_samplers = 0;
3568 
3571 
3572  _M_RW_aliasing = false;
3573 
3574  _M_shader_blob = NULL;
3575 
3576  _M_is_flat_model = 0;
3577  _M_compute_rank = 0;
3579 
3580  _M_groupCountX = 0;
3581  _M_groupCountY = 0;
3582  _M_groupCountZ = 0;
3583 
3584  _M_groupExtentX = 0;
3585  _M_groupExtentY = 0;
3586  _M_groupExtentZ = 0;
3587  }
size_t _M_num_writable_buffers
Definition: amprt.h:3523
_DPC_shader_blob * _M_shader_blob
Definition: amprt.h:3533
unsigned int _M_groupExtentY
Definition: amprt.h:3547
bool _M_RW_aliasing
Definition: amprt.h:3530
unsigned int _M_groupExtentZ
Definition: amprt.h:3548
_Ret_ _Accelerator_view_impl * _Get_accelerator_view_impl_ptr(const accelerator_view &_Accl_view)
Definition: amprt.h:1556
size_t _M_num_resources
Definition: amprt.h:3522
unsigned int _M_groupCountZ
Definition: amprt.h:3543
unsigned int _M_compute_rank
Definition: amprt.h:3537
unsigned int _M_groupCountX
Definition: amprt.h:3541
unsigned int _M_groupExtentX
Definition: amprt.h:3546
_Device_resource_info * _M_device_resource_info
Definition: amprt.h:3521
_Device_const_buffer_info * _M_const_buffer_info
Definition: amprt.h:3527
int _M_is_flat_model
Definition: amprt.h:3536
unsigned int _M_groupCountY
Definition: amprt.h:3542
size_t _M_num_samplers
Definition: amprt.h:3524
_Accelerator_view_impl * _M_rv
Definition: amprt.h:3517
bool _M_is_explicit_target_acclview
Definition: amprt.h:3518
size_t _M_num_const_buffers
Definition: amprt.h:3528
unsigned int * _M_grid_extents
Definition: amprt.h:3538
#define NULL
Definition: corecrt.h:158
Concurrency::details::_DPC_call_handle::~_DPC_call_handle ( )
inline
3590  {
3591  if (_M_grid_extents) {
3592  delete [] _M_grid_extents;
3593  }
3594  }
unsigned int * _M_grid_extents
Definition: amprt.h:3538

Member Function Documentation

void Concurrency::details::_DPC_call_handle::_Check_buffer_aliasing ( )
const int* Concurrency::details::_DPC_call_handle::_Get_redirect_indices ( ) const
inline
3616  {
3617  if (!_M_RW_aliasing) {
3618  return nullptr;
3619  }
3620 
3621  _ASSERTE(_M_Redirect_indices != nullptr);
3622 
3623  return _M_Redirect_indices->data();
3624  }
bool _M_RW_aliasing
Definition: amprt.h:3530
#define _ASSERTE(expr)
Definition: crtdbg.h:707
std::unique_ptr< std::vector< int > > _M_Redirect_indices
Definition: amprt.h:3636
bool Concurrency::details::_DPC_call_handle::_Is_buffer_aliased ( _In_ void *const  _Buffer_ptr) const
inline
3597  {
3598  return ((_M_aliased_buffer_set != nullptr) && (_M_aliased_buffer_set->find(_Buffer_ptr) != _M_aliased_buffer_set->end()));
3599  }
details::_Reference_counted_obj_ptr< details::_Buffer > _Buffer_ptr
Definition: amprt.h:308
std::unique_ptr< std::unordered_set< void * > > _M_aliased_buffer_set
Definition: amprt.h:3633
bool Concurrency::details::_DPC_call_handle::_Is_buffer_unaccessed ( size_t const  _Buffer_idx) const
inline
3602  {
3603  return ((_M_is_device_buffer_unaccessed != nullptr) && _M_is_device_buffer_unaccessed->operator[](_Buffer_idx));
3604  }
std::unique_ptr< std::vector< bool > > _M_is_device_buffer_unaccessed
Definition: amprt.h:3634
void Concurrency::details::_DPC_call_handle::_Select_accelerator_view ( )
void Concurrency::details::_DPC_call_handle::_Set_buffer_unaccessed ( size_t  _Buffer_idx)
inline
3607  {
3608  if (_M_is_device_buffer_unaccessed == nullptr) {
3609  _M_is_device_buffer_unaccessed = std::unique_ptr<std::vector<bool>>(new std::vector<bool>(_M_num_resources, false));
3610  }
3611 
3612  _M_is_device_buffer_unaccessed->operator[](_Buffer_idx) = true;
3613  }
std::unique_ptr< std::vector< bool > > _M_is_device_buffer_unaccessed
Definition: amprt.h:3634
size_t _M_num_resources
Definition: amprt.h:3522
void Concurrency::details::_DPC_call_handle::_Setup_aliasing_redirection_indices ( )
void Concurrency::details::_DPC_call_handle::_Update_buffer_rw_property ( )
void Concurrency::details::_DPC_call_handle::_Verify_buffers_against_accelerator_view ( )

Member Data Documentation

std::unique_ptr<std::unordered_set<void*> > Concurrency::details::_DPC_call_handle::_M_aliased_buffer_set
private
unsigned int Concurrency::details::_DPC_call_handle::_M_compute_rank
_Device_const_buffer_info* Concurrency::details::_DPC_call_handle::_M_const_buffer_info
_Device_resource_info* Concurrency::details::_DPC_call_handle::_M_device_resource_info
unsigned int* Concurrency::details::_DPC_call_handle::_M_grid_extents
unsigned int Concurrency::details::_DPC_call_handle::_M_groupCountX
unsigned int Concurrency::details::_DPC_call_handle::_M_groupCountY
unsigned int Concurrency::details::_DPC_call_handle::_M_groupCountZ
unsigned int Concurrency::details::_DPC_call_handle::_M_groupExtentX
unsigned int Concurrency::details::_DPC_call_handle::_M_groupExtentY
unsigned int Concurrency::details::_DPC_call_handle::_M_groupExtentZ
std::unique_ptr<std::vector<bool> > Concurrency::details::_DPC_call_handle::_M_is_device_buffer_unaccessed
private
bool Concurrency::details::_DPC_call_handle::_M_is_explicit_target_acclview
int Concurrency::details::_DPC_call_handle::_M_is_flat_model
size_t Concurrency::details::_DPC_call_handle::_M_num_const_buffers
size_t Concurrency::details::_DPC_call_handle::_M_num_resources
size_t Concurrency::details::_DPC_call_handle::_M_num_samplers
size_t Concurrency::details::_DPC_call_handle::_M_num_writable_buffers
std::unique_ptr<std::vector<int> > Concurrency::details::_DPC_call_handle::_M_Redirect_indices
private
_Accelerator_view_impl* Concurrency::details::_DPC_call_handle::_M_rv
bool Concurrency::details::_DPC_call_handle::_M_RW_aliasing
_DPC_shader_blob* Concurrency::details::_DPC_call_handle::_M_shader_blob

The documentation for this struct was generated from the following file: